mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Simple overlapping changes to linux/vermagic.h Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
d483389678
@ -142,10 +142,13 @@ ForEachMacros:
|
||||
- 'for_each_card_auxs'
|
||||
- 'for_each_card_auxs_safe'
|
||||
- 'for_each_card_components'
|
||||
- 'for_each_card_dapms'
|
||||
- 'for_each_card_pre_auxs'
|
||||
- 'for_each_card_prelinks'
|
||||
- 'for_each_card_rtds'
|
||||
- 'for_each_card_rtds_safe'
|
||||
- 'for_each_card_widgets'
|
||||
- 'for_each_card_widgets_safe'
|
||||
- 'for_each_cgroup_storage_type'
|
||||
- 'for_each_child_of_node'
|
||||
- 'for_each_clear_bit'
|
||||
@ -160,6 +163,7 @@ ForEachMacros:
|
||||
- 'for_each_cpu_and'
|
||||
- 'for_each_cpu_not'
|
||||
- 'for_each_cpu_wrap'
|
||||
- 'for_each_dapm_widgets'
|
||||
- 'for_each_dev_addr'
|
||||
- 'for_each_dev_scope'
|
||||
- 'for_each_displayid_db'
|
||||
@ -170,7 +174,6 @@ ForEachMacros:
|
||||
- 'for_each_dpcm_fe'
|
||||
- 'for_each_drhd_unit'
|
||||
- 'for_each_dss_dev'
|
||||
- 'for_each_efi_handle'
|
||||
- 'for_each_efi_memory_desc'
|
||||
- 'for_each_efi_memory_desc_in_map'
|
||||
- 'for_each_element'
|
||||
@ -191,6 +194,7 @@ ForEachMacros:
|
||||
- 'for_each_ip_tunnel_rcu'
|
||||
- 'for_each_irq_nr'
|
||||
- 'for_each_link_codecs'
|
||||
- 'for_each_link_cpus'
|
||||
- 'for_each_link_platforms'
|
||||
- 'for_each_lru'
|
||||
- 'for_each_matching_node'
|
||||
@ -250,6 +254,7 @@ ForEachMacros:
|
||||
- 'for_each_pci_bridge'
|
||||
- 'for_each_pci_dev'
|
||||
- 'for_each_pci_msi_entry'
|
||||
- 'for_each_pcm_streams'
|
||||
- 'for_each_populated_zone'
|
||||
- 'for_each_possible_cpu'
|
||||
- 'for_each_present_cpu'
|
||||
@ -260,9 +265,12 @@ ForEachMacros:
|
||||
- 'for_each_property_of_node'
|
||||
- 'for_each_registered_fb'
|
||||
- 'for_each_reserved_mem_region'
|
||||
- 'for_each_rtd_codec_dai'
|
||||
- 'for_each_rtd_codec_dai_rollback'
|
||||
- 'for_each_rtd_codec_dais'
|
||||
- 'for_each_rtd_codec_dais_rollback'
|
||||
- 'for_each_rtd_components'
|
||||
- 'for_each_rtd_cpu_dais'
|
||||
- 'for_each_rtd_cpu_dais_rollback'
|
||||
- 'for_each_rtd_dais'
|
||||
- 'for_each_set_bit'
|
||||
- 'for_each_set_bit_from'
|
||||
- 'for_each_set_clump8'
|
||||
@ -334,6 +342,7 @@ ForEachMacros:
|
||||
- 'klp_for_each_object'
|
||||
- 'klp_for_each_object_safe'
|
||||
- 'klp_for_each_object_static'
|
||||
- 'kunit_suite_for_each_test_case'
|
||||
- 'kvm_for_each_memslot'
|
||||
- 'kvm_for_each_vcpu'
|
||||
- 'list_for_each'
|
||||
@ -387,6 +396,7 @@ ForEachMacros:
|
||||
- 'of_property_for_each_string'
|
||||
- 'of_property_for_each_u32'
|
||||
- 'pci_bus_for_each_resource'
|
||||
- 'pcm_for_each_format'
|
||||
- 'ping_portaddr_for_each_entry'
|
||||
- 'plist_for_each'
|
||||
- 'plist_for_each_continue'
|
||||
@ -482,7 +492,7 @@ KeepEmptyLinesAtTheStartOfBlocks: false
|
||||
MacroBlockBegin: ''
|
||||
MacroBlockEnd: ''
|
||||
MaxEmptyLinesToKeep: 1
|
||||
NamespaceIndentation: Inner
|
||||
NamespaceIndentation: None
|
||||
#ObjCBinPackProtocolList: Auto # Unknown to clang-format-5.0
|
||||
ObjCBlockIndentWidth: 8
|
||||
ObjCSpaceAfterProperty: true
|
||||
|
@ -390,9 +390,17 @@ When ``kptr_restrict`` is set to 2, kernel pointers printed using
|
||||
modprobe
|
||||
========
|
||||
|
||||
This gives the full path of the modprobe command which the kernel will
|
||||
use to load modules. This can be used to debug module loading
|
||||
requests::
|
||||
The full path to the usermode helper for autoloading kernel modules,
|
||||
by default "/sbin/modprobe". This binary is executed when the kernel
|
||||
requests a module. For example, if userspace passes an unknown
|
||||
filesystem type to mount(), then the kernel will automatically request
|
||||
the corresponding filesystem module by executing this usermode helper.
|
||||
This usermode helper should insert the needed module into the kernel.
|
||||
|
||||
This sysctl only affects module autoloading. It has no effect on the
|
||||
ability to explicitly insert modules.
|
||||
|
||||
This sysctl can be used to debug module loading requests::
|
||||
|
||||
echo '#! /bin/sh' > /tmp/modprobe
|
||||
echo 'echo "$@" >> /tmp/modprobe.log' >> /tmp/modprobe
|
||||
@ -400,10 +408,15 @@ requests::
|
||||
chmod a+x /tmp/modprobe
|
||||
echo /tmp/modprobe > /proc/sys/kernel/modprobe
|
||||
|
||||
This only applies when the *kernel* is requesting that the module be
|
||||
loaded; it won't have any effect if the module is being loaded
|
||||
explicitly using ``modprobe`` from userspace.
|
||||
Alternatively, if this sysctl is set to the empty string, then module
|
||||
autoloading is completely disabled. The kernel will not try to
|
||||
execute a usermode helper at all, nor will it call the
|
||||
kernel_module_request LSM hook.
|
||||
|
||||
If CONFIG_STATIC_USERMODEHELPER=y is set in the kernel configuration,
|
||||
then the configured static usermode helper overrides this sysctl,
|
||||
except that the empty string is still accepted to completely disable
|
||||
module autoloading as described above.
|
||||
|
||||
modules_disabled
|
||||
================
|
||||
@ -446,28 +459,6 @@ Notes:
|
||||
successful IPC object allocation. If an IPC object allocation syscall
|
||||
fails, it is undefined if the value remains unmodified or is reset to -1.
|
||||
|
||||
modprobe:
|
||||
=========
|
||||
|
||||
The path to the usermode helper for autoloading kernel modules, by
|
||||
default "/sbin/modprobe". This binary is executed when the kernel
|
||||
requests a module. For example, if userspace passes an unknown
|
||||
filesystem type to mount(), then the kernel will automatically request
|
||||
the corresponding filesystem module by executing this usermode helper.
|
||||
This usermode helper should insert the needed module into the kernel.
|
||||
|
||||
This sysctl only affects module autoloading. It has no effect on the
|
||||
ability to explicitly insert modules.
|
||||
|
||||
If this sysctl is set to the empty string, then module autoloading is
|
||||
completely disabled. The kernel will not try to execute a usermode
|
||||
helper at all, nor will it call the kernel_module_request LSM hook.
|
||||
|
||||
If CONFIG_STATIC_USERMODEHELPER=y is set in the kernel configuration,
|
||||
then the configured static usermode helper overrides this sysctl,
|
||||
except that the empty string is still accepted to completely disable
|
||||
module autoloading as described above.
|
||||
|
||||
nmi_watchdog
|
||||
============
|
||||
|
||||
|
@ -23,13 +23,14 @@ optional external memory-mapped interface.
|
||||
|
||||
Version 1 of the Activity Monitors architecture implements a counter group
|
||||
of four fixed and architecturally defined 64-bit event counters.
|
||||
- CPU cycle counter: increments at the frequency of the CPU.
|
||||
- Constant counter: increments at the fixed frequency of the system
|
||||
clock.
|
||||
- Instructions retired: increments with every architecturally executed
|
||||
instruction.
|
||||
- Memory stall cycles: counts instruction dispatch stall cycles caused by
|
||||
misses in the last level cache within the clock domain.
|
||||
|
||||
- CPU cycle counter: increments at the frequency of the CPU.
|
||||
- Constant counter: increments at the fixed frequency of the system
|
||||
clock.
|
||||
- Instructions retired: increments with every architecturally executed
|
||||
instruction.
|
||||
- Memory stall cycles: counts instruction dispatch stall cycles caused by
|
||||
misses in the last level cache within the clock domain.
|
||||
|
||||
When in WFI or WFE these counters do not increment.
|
||||
|
||||
@ -57,11 +58,12 @@ counters, only the presence of the extension.
|
||||
|
||||
Firmware (code running at higher exception levels, e.g. arm-tf) support is
|
||||
needed to:
|
||||
- Enable access for lower exception levels (EL2 and EL1) to the AMU
|
||||
registers.
|
||||
- Enable the counters. If not enabled these will read as 0.
|
||||
- Save/restore the counters before/after the CPU is being put/brought up
|
||||
from the 'off' power state.
|
||||
|
||||
- Enable access for lower exception levels (EL2 and EL1) to the AMU
|
||||
registers.
|
||||
- Enable the counters. If not enabled these will read as 0.
|
||||
- Save/restore the counters before/after the CPU is being put/brought up
|
||||
from the 'off' power state.
|
||||
|
||||
When using kernels that have this feature enabled but boot with broken
|
||||
firmware the user may experience panics or lockups when accessing the
|
||||
@ -78,10 +80,11 @@ are not trapped in EL2/EL3.
|
||||
|
||||
The fixed counters of AMUv1 are accessible though the following system
|
||||
register definitions:
|
||||
- SYS_AMEVCNTR0_CORE_EL0
|
||||
- SYS_AMEVCNTR0_CONST_EL0
|
||||
- SYS_AMEVCNTR0_INST_RET_EL0
|
||||
- SYS_AMEVCNTR0_MEM_STALL_EL0
|
||||
|
||||
- SYS_AMEVCNTR0_CORE_EL0
|
||||
- SYS_AMEVCNTR0_CONST_EL0
|
||||
- SYS_AMEVCNTR0_INST_RET_EL0
|
||||
- SYS_AMEVCNTR0_MEM_STALL_EL0
|
||||
|
||||
Auxiliary platform specific counters can be accessed using
|
||||
SYS_AMEVCNTR1_EL0(n), where n is a value between 0 and 15.
|
||||
@ -93,9 +96,10 @@ Userspace access
|
||||
----------------
|
||||
|
||||
Currently, access from userspace to the AMU registers is disabled due to:
|
||||
- Security reasons: they might expose information about code executed in
|
||||
secure mode.
|
||||
- Purpose: AMU counters are intended for system management use.
|
||||
|
||||
- Security reasons: they might expose information about code executed in
|
||||
secure mode.
|
||||
- Purpose: AMU counters are intended for system management use.
|
||||
|
||||
Also, the presence of the feature is not visible to userspace.
|
||||
|
||||
@ -105,8 +109,9 @@ Virtualization
|
||||
|
||||
Currently, access from userspace (EL0) and kernelspace (EL1) on the KVM
|
||||
guest side is disabled due to:
|
||||
- Security reasons: they might expose information about code executed
|
||||
by other guests or the host.
|
||||
|
||||
- Security reasons: they might expose information about code executed
|
||||
by other guests or the host.
|
||||
|
||||
Any attempt to access the AMU registers will result in an UNDEFINED
|
||||
exception being injected into the guest.
|
||||
|
@ -154,9 +154,9 @@ architectures. These are the recommended replacements:
|
||||
|
||||
Use ktime_get() or ktime_get_ts64() instead.
|
||||
|
||||
.. c:function:: struct timeval do_gettimeofday( void )
|
||||
struct timespec getnstimeofday( void )
|
||||
struct timespec64 getnstimeofday64( void )
|
||||
.. c:function:: void do_gettimeofday( struct timeval * )
|
||||
void getnstimeofday( struct timespec * )
|
||||
void getnstimeofday64( struct timespec64 * )
|
||||
void ktime_get_real_ts( struct timespec * )
|
||||
|
||||
ktime_get_real_ts64() is a direct replacement, but consider using
|
||||
|
@ -42,6 +42,10 @@ properties:
|
||||
description:
|
||||
See section 2.3.9 of the DeviceTree Specification.
|
||||
|
||||
'#address-cells': true
|
||||
|
||||
'#size-cells': true
|
||||
|
||||
required:
|
||||
- "#interconnect-cells"
|
||||
- compatible
|
||||
@ -59,6 +63,8 @@ examples:
|
||||
compatible = "allwinner,sun5i-a13-mbus";
|
||||
reg = <0x01c01000 0x1000>;
|
||||
clocks = <&ccu CLK_MBUS>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
dma-ranges = <0x00000000 0x40000000 0x20000000>;
|
||||
#interconnect-cells = <1>;
|
||||
};
|
||||
|
@ -91,7 +91,7 @@ required:
|
||||
|
||||
examples:
|
||||
- |
|
||||
vco1: clock@00 {
|
||||
vco1: clock {
|
||||
compatible = "arm,impd1-vco1";
|
||||
#clock-cells = <0>;
|
||||
lock-offset = <0x08>;
|
||||
|
@ -1,5 +1,5 @@
|
||||
Analog Device ADV7123 Video DAC
|
||||
-------------------------------
|
||||
Analog Devices ADV7123 Video DAC
|
||||
--------------------------------
|
||||
|
||||
The ADV7123 is a digital-to-analog converter that outputs VGA signals from a
|
||||
parallel video input.
|
||||
|
@ -1,5 +1,5 @@
|
||||
Analog Device ADV7511(W)/13/33/35 HDMI Encoders
|
||||
-----------------------------------------
|
||||
Analog Devices ADV7511(W)/13/33/35 HDMI Encoders
|
||||
------------------------------------------------
|
||||
|
||||
The ADV7511, ADV7511W, ADV7513, ADV7533 and ADV7535 are HDMI audio and video
|
||||
transmitters compatible with HDMI 1.4 and DVI 1.0. They support color space
|
||||
|
@ -37,7 +37,6 @@ examples:
|
||||
dsi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0xff450000 0x1000>;
|
||||
|
||||
panel@0 {
|
||||
compatible = "leadtek,ltk500hd1829";
|
||||
|
@ -96,12 +96,20 @@ properties:
|
||||
If set, reverse the bit order described in the data mappings below on all
|
||||
data lanes, transmitting bits for slots 6 to 0 instead of 0 to 6.
|
||||
|
||||
port: true
|
||||
ports: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- data-mapping
|
||||
- width-mm
|
||||
- height-mm
|
||||
- panel-timing
|
||||
- port
|
||||
|
||||
oneOf:
|
||||
- required:
|
||||
- port
|
||||
- required:
|
||||
- ports
|
||||
|
||||
...
|
||||
|
@ -37,7 +37,6 @@ examples:
|
||||
dsi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0xff450000 0x1000>;
|
||||
|
||||
panel@0 {
|
||||
compatible = "xinpeng,xpp055c272";
|
||||
|
@ -1,4 +1,4 @@
|
||||
Analog Device AXI-DMAC DMA controller
|
||||
Analog Devices AXI-DMAC DMA controller
|
||||
|
||||
Required properties:
|
||||
- compatible: Must be "adi,axi-dmac-1.00.a".
|
||||
|
@ -2,7 +2,7 @@
|
||||
# Copyright 2019 Analog Devices Inc.
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/bindings/hwmon/adi,axi-fan-control.yaml#
|
||||
$id: http://devicetree.org/schemas/hwmon/adi,axi-fan-control.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices AXI FAN Control Device Tree Bindings
|
||||
@ -47,7 +47,7 @@ required:
|
||||
|
||||
examples:
|
||||
- |
|
||||
fpga_axi: fpga-axi@0 {
|
||||
fpga_axi: fpga-axi {
|
||||
#address-cells = <0x2>;
|
||||
#size-cells = <0x1>;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/adt7475.yaml#
|
||||
$id: http://devicetree.org/schemas/hwmon/adt7475.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ADT7475 hwmon sensor
|
||||
|
@ -1,4 +1,4 @@
|
||||
* Analog Device AD5755 IIO Multi-Channel DAC Linux Driver
|
||||
* Analog Devices AD5755 IIO Multi-Channel DAC Linux Driver
|
||||
|
||||
Required properties:
|
||||
- compatible: Has to contain one of the following:
|
||||
|
@ -2,7 +2,7 @@
|
||||
# Copyright 2020 Analog Devices Inc.
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/bindings/iio/dac/adi,ad5770r.yaml#
|
||||
$id: http://devicetree.org/schemas/iio/dac/adi,ad5770r.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices AD5770R DAC device driver
|
||||
@ -49,93 +49,86 @@ properties:
|
||||
asserted during driver probe.
|
||||
maxItems: 1
|
||||
|
||||
channel0:
|
||||
channel@0:
|
||||
description: Represents an external channel which are
|
||||
connected to the DAC. Channel 0 can act both as a current
|
||||
source and sink.
|
||||
type: object
|
||||
|
||||
properties:
|
||||
num:
|
||||
reg:
|
||||
description: This represents the channel number.
|
||||
items:
|
||||
const: 0
|
||||
const: 0
|
||||
|
||||
adi,range-microamp:
|
||||
description: Output range of the channel.
|
||||
oneOf:
|
||||
- $ref: /schemas/types.yaml#/definitions/int32-array
|
||||
- items:
|
||||
- enum: [0 300000]
|
||||
- enum: [-60000 0]
|
||||
- enum: [-60000 300000]
|
||||
- const: 0
|
||||
- const: 300000
|
||||
- items:
|
||||
- const: -60000
|
||||
- const: 0
|
||||
- items:
|
||||
- const: -60000
|
||||
- const: 300000
|
||||
|
||||
channel1:
|
||||
channel@1:
|
||||
description: Represents an external channel which are
|
||||
connected to the DAC.
|
||||
type: object
|
||||
|
||||
properties:
|
||||
num:
|
||||
reg:
|
||||
description: This represents the channel number.
|
||||
items:
|
||||
const: 1
|
||||
const: 1
|
||||
|
||||
adi,range-microamp:
|
||||
description: Output range of the channel.
|
||||
oneOf:
|
||||
- $ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
- items:
|
||||
- enum: [0 140000]
|
||||
- enum: [0 250000]
|
||||
items:
|
||||
- const: 0
|
||||
- enum: [ 140000, 250000 ]
|
||||
|
||||
channel2:
|
||||
channel@2:
|
||||
description: Represents an external channel which are
|
||||
connected to the DAC.
|
||||
type: object
|
||||
|
||||
properties:
|
||||
num:
|
||||
reg:
|
||||
description: This represents the channel number.
|
||||
items:
|
||||
const: 2
|
||||
const: 2
|
||||
|
||||
adi,range-microamp:
|
||||
description: Output range of the channel.
|
||||
oneOf:
|
||||
- $ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
- items:
|
||||
- enum: [0 140000]
|
||||
- enum: [0 250000]
|
||||
items:
|
||||
- const: 0
|
||||
- enum: [ 55000, 150000 ]
|
||||
|
||||
patternProperties:
|
||||
"^channel@([3-5])$":
|
||||
type: object
|
||||
description: Represents the external channels which are connected to the DAC.
|
||||
properties:
|
||||
num:
|
||||
reg:
|
||||
description: This represents the channel number.
|
||||
items:
|
||||
minimum: 3
|
||||
maximum: 5
|
||||
minimum: 3
|
||||
maximum: 5
|
||||
|
||||
adi,range-microamp:
|
||||
description: Output range of the channel.
|
||||
oneOf:
|
||||
- $ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
- items:
|
||||
- enum: [0 45000]
|
||||
- enum: [0 100000]
|
||||
items:
|
||||
- const: 0
|
||||
- enum: [ 45000, 100000 ]
|
||||
|
||||
required:
|
||||
- reg
|
||||
- diff-channels
|
||||
- channel0
|
||||
- channel1
|
||||
- channel2
|
||||
- channel3
|
||||
- channel4
|
||||
- channel5
|
||||
- channel@0
|
||||
- channel@1
|
||||
- channel@2
|
||||
- channel@3
|
||||
- channel@4
|
||||
- channel@5
|
||||
|
||||
examples:
|
||||
- |
|
||||
@ -144,40 +137,42 @@ examples:
|
||||
#size-cells = <0>;
|
||||
|
||||
ad5770r@0 {
|
||||
compatible = "ad5770r";
|
||||
compatible = "adi,ad5770r";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <1000000>;
|
||||
vref-supply = <&vref>;
|
||||
adi,external-resistor;
|
||||
reset-gpios = <&gpio 22 0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
channel@0 {
|
||||
num = <0>;
|
||||
adi,range-microamp = <(-60000) 300000>;
|
||||
reg = <0>;
|
||||
adi,range-microamp = <0 300000>;
|
||||
};
|
||||
|
||||
channel@1 {
|
||||
num = <1>;
|
||||
reg = <1>;
|
||||
adi,range-microamp = <0 140000>;
|
||||
};
|
||||
|
||||
channel@2 {
|
||||
num = <2>;
|
||||
reg = <2>;
|
||||
adi,range-microamp = <0 55000>;
|
||||
};
|
||||
|
||||
channel@3 {
|
||||
num = <3>;
|
||||
reg = <3>;
|
||||
adi,range-microamp = <0 45000>;
|
||||
};
|
||||
|
||||
channel@4 {
|
||||
num = <4>;
|
||||
reg = <4>;
|
||||
adi,range-microamp = <0 45000>;
|
||||
};
|
||||
|
||||
channel@5 {
|
||||
num = <5>;
|
||||
reg = <5>;
|
||||
adi,range-microamp = <0 45000>;
|
||||
};
|
||||
};
|
||||
|
@ -109,7 +109,7 @@ examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
i2c@00000000 {
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
edt-ft5x06@38 {
|
||||
|
@ -56,9 +56,8 @@ properties:
|
||||
cell with zero.
|
||||
allOf:
|
||||
- $ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
- items:
|
||||
minItems: 4
|
||||
maxItems: 4
|
||||
- minItems: 4
|
||||
maxItems: 4
|
||||
|
||||
|
||||
required:
|
||||
|
@ -97,30 +97,35 @@ examples:
|
||||
#include <dt-bindings/clock/tegra186-clock.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
memory-controller@2c00000 {
|
||||
compatible = "nvidia,tegra186-mc";
|
||||
reg = <0x0 0x02c00000 0x0 0xb0000>;
|
||||
interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
bus {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
ranges = <0x0 0x02c00000 0x02c00000 0x0 0xb0000>;
|
||||
memory-controller@2c00000 {
|
||||
compatible = "nvidia,tegra186-mc";
|
||||
reg = <0x0 0x02c00000 0x0 0xb0000>;
|
||||
interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
/*
|
||||
* Memory clients have access to all 40 bits that the memory
|
||||
* controller can address.
|
||||
*/
|
||||
dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x0>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
external-memory-controller@2c60000 {
|
||||
compatible = "nvidia,tegra186-emc";
|
||||
reg = <0x0 0x02c60000 0x0 0x50000>;
|
||||
interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&bpmp TEGRA186_CLK_EMC>;
|
||||
clock-names = "emc";
|
||||
ranges = <0x0 0x02c00000 0x0 0x02c00000 0x0 0xb0000>;
|
||||
|
||||
nvidia,bpmp = <&bpmp>;
|
||||
/*
|
||||
* Memory clients have access to all 40 bits that the memory
|
||||
* controller can address.
|
||||
*/
|
||||
dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x0>;
|
||||
|
||||
external-memory-controller@2c60000 {
|
||||
compatible = "nvidia,tegra186-emc";
|
||||
reg = <0x0 0x02c60000 0x0 0x50000>;
|
||||
interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&bpmp TEGRA186_CLK_EMC>;
|
||||
clock-names = "emc";
|
||||
|
||||
nvidia,bpmp = <&bpmp>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -123,7 +123,9 @@ examples:
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
i2c {
|
||||
pmic: pmic@4b {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pmic: pmic@4b {
|
||||
compatible = "rohm,bd71837";
|
||||
reg = <0x4b>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
|
@ -128,7 +128,9 @@ examples:
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
i2c {
|
||||
pmic: pmic@4b {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pmic: pmic@4b {
|
||||
compatible = "rohm,bd71847";
|
||||
reg = <0x4b>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
|
@ -274,7 +274,7 @@ examples:
|
||||
- |
|
||||
#include <dt-bindings/mfd/st,stpmic1.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
i2c@0 {
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pmic@33 {
|
||||
|
@ -48,6 +48,7 @@ examples:
|
||||
|
||||
switch@10 {
|
||||
compatible = "qca,qca8337";
|
||||
reg = <0x10>;
|
||||
/* ... */
|
||||
};
|
||||
};
|
||||
|
@ -30,7 +30,7 @@ Required properties for compatible string qcom,wcn399x-bt:
|
||||
|
||||
Optional properties for compatible string qcom,wcn399x-bt:
|
||||
|
||||
- max-speed: see Documentation/devicetree/bindings/serial/slave-device.txt
|
||||
- max-speed: see Documentation/devicetree/bindings/serial/serial.yaml
|
||||
- firmware-name: specify the name of nvm firmware to load
|
||||
- clocks: clock provided to the controller
|
||||
|
||||
|
@ -146,7 +146,7 @@ patternProperties:
|
||||
bindings specified in
|
||||
Documentation/devicetree/bindings/phy/phy-cadence-sierra.txt
|
||||
Torrent SERDES should follow the bindings specified in
|
||||
Documentation/devicetree/bindings/phy/phy-cadence-dp.txt
|
||||
Documentation/devicetree/bindings/phy/phy-cadence-torrent.yaml
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
@ -31,10 +31,17 @@ additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
cros-ec@0 {
|
||||
compatible = "google,cros-ec-spi";
|
||||
cros_ec_pwm: ec-pwm {
|
||||
compatible = "google,cros-ec-pwm";
|
||||
#pwm-cells = <1>;
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cros-ec@0 {
|
||||
compatible = "google,cros-ec-spi";
|
||||
reg = <0>;
|
||||
|
||||
cros_ec_pwm: ec-pwm {
|
||||
compatible = "google,cros-ec-pwm";
|
||||
#pwm-cells = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -39,7 +39,7 @@ additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
rng {
|
||||
rng@7e104000 {
|
||||
compatible = "brcm,bcm2835-rng";
|
||||
reg = <0x7e104000 0x10>;
|
||||
interrupts = <2 29>;
|
||||
|
@ -56,6 +56,9 @@ properties:
|
||||
- const: tx
|
||||
- const: rx
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
rockchip,capture-channels:
|
||||
allOf:
|
||||
- $ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
@ -1,45 +0,0 @@
|
||||
* Rockchip SPDIF transceiver
|
||||
|
||||
The S/PDIF audio block is a stereo transceiver that allows the
|
||||
processor to receive and transmit digital audio via an coaxial cable or
|
||||
a fibre cable.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: should be one of the following:
|
||||
- "rockchip,rk3066-spdif"
|
||||
- "rockchip,rk3188-spdif"
|
||||
- "rockchip,rk3228-spdif"
|
||||
- "rockchip,rk3288-spdif"
|
||||
- "rockchip,rk3328-spdif"
|
||||
- "rockchip,rk3366-spdif"
|
||||
- "rockchip,rk3368-spdif"
|
||||
- "rockchip,rk3399-spdif"
|
||||
- reg: physical base address of the controller and length of memory mapped
|
||||
region.
|
||||
- interrupts: should contain the SPDIF interrupt.
|
||||
- dmas: DMA specifiers for tx dma. See the DMA client binding,
|
||||
Documentation/devicetree/bindings/dma/dma.txt
|
||||
- dma-names: should be "tx"
|
||||
- clocks: a list of phandle + clock-specifier pairs, one for each entry
|
||||
in clock-names.
|
||||
- clock-names: should contain following:
|
||||
- "hclk": clock for SPDIF controller
|
||||
- "mclk" : clock for SPDIF bus
|
||||
|
||||
Required properties on RK3288:
|
||||
- rockchip,grf: the phandle of the syscon node for the general register
|
||||
file (GRF)
|
||||
|
||||
Example for the rk3188 SPDIF controller:
|
||||
|
||||
spdif: spdif@1011e000 {
|
||||
compatible = "rockchip,rk3188-spdif", "rockchip,rk3066-spdif";
|
||||
reg = <0x1011e000 0x2000>;
|
||||
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&dmac1_s 8>;
|
||||
dma-names = "tx";
|
||||
clock-names = "hclk", "mclk";
|
||||
clocks = <&cru HCLK_SPDIF>, <&cru SCLK_SPDIF>;
|
||||
#sound-dai-cells = <0>;
|
||||
};
|
101
Documentation/devicetree/bindings/sound/rockchip-spdif.yaml
Normal file
101
Documentation/devicetree/bindings/sound/rockchip-spdif.yaml
Normal file
@ -0,0 +1,101 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/rockchip-spdif.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Rockchip SPDIF transceiver
|
||||
|
||||
description:
|
||||
The S/PDIF audio block is a stereo transceiver that allows the
|
||||
processor to receive and transmit digital audio via a coaxial or
|
||||
fibre cable.
|
||||
|
||||
maintainers:
|
||||
- Heiko Stuebner <heiko@sntech.de>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- const: rockchip,rk3066-spdif
|
||||
- const: rockchip,rk3228-spdif
|
||||
- const: rockchip,rk3328-spdif
|
||||
- const: rockchip,rk3366-spdif
|
||||
- const: rockchip,rk3368-spdif
|
||||
- const: rockchip,rk3399-spdif
|
||||
- items:
|
||||
- enum:
|
||||
- rockchip,rk3188-spdif
|
||||
- rockchip,rk3288-spdif
|
||||
- const: rockchip,rk3066-spdif
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: clock for SPDIF bus
|
||||
- description: clock for SPDIF controller
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: mclk
|
||||
- const: hclk
|
||||
|
||||
dmas:
|
||||
maxItems: 1
|
||||
|
||||
dma-names:
|
||||
const: tx
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
rockchip,grf:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description:
|
||||
The phandle of the syscon node for the GRF register.
|
||||
Required property on RK3288.
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
- dmas
|
||||
- dma-names
|
||||
- "#sound-dai-cells"
|
||||
|
||||
if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: rockchip,rk3288-spdif
|
||||
|
||||
then:
|
||||
required:
|
||||
- rockchip,grf
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/rk3188-cru.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
spdif: spdif@1011e000 {
|
||||
compatible = "rockchip,rk3188-spdif", "rockchip,rk3066-spdif";
|
||||
reg = <0x1011e000 0x2000>;
|
||||
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru SCLK_SPDIF>, <&cru HCLK_SPDIF>;
|
||||
clock-names = "mclk", "hclk";
|
||||
dmas = <&dmac1_s 8>;
|
||||
dma-names = "tx";
|
||||
#sound-dai-cells = <0>;
|
||||
};
|
@ -61,7 +61,7 @@ examples:
|
||||
#include <dt-bindings/clock/qcom,gcc-sdm845.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
soc: soc@0 {
|
||||
soc: soc {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
|
@ -56,7 +56,7 @@ additionalProperties: false
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/jz4740-cgu.h>
|
||||
usb_phy: usb-phy@0 {
|
||||
usb_phy: usb-phy {
|
||||
compatible = "usb-nop-xceiv";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
@ -52,8 +52,8 @@ A child node must exist to represent the core DWC3 IP block. The name of
|
||||
the node is not important. The content of the node is defined in dwc3.txt.
|
||||
|
||||
Phy documentation is provided in the following places:
|
||||
Documentation/devicetree/bindings/phy/qcom-qmp-phy.txt - USB3 QMP PHY
|
||||
Documentation/devicetree/bindings/phy/qcom-qusb2-phy.txt - USB2 QUSB2 PHY
|
||||
Documentation/devicetree/bindings/phy/qcom-qmp-phy.txt - USB3 QMP PHY
|
||||
Documentation/devicetree/bindings/phy/qcom,qusb2-phy.yaml - USB2 QUSB2 PHY
|
||||
|
||||
Example device nodes:
|
||||
|
||||
|
@ -16,7 +16,7 @@ A child node must exist to represent the core DWC3 IP block. The name of
|
||||
the node is not important. The content of the node is defined in dwc3.txt.
|
||||
|
||||
Phy documentation is provided in the following places:
|
||||
Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.txt - USB2.0 PHY
|
||||
Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.yaml - USB2.0 PHY
|
||||
Documentation/devicetree/bindings/phy/phy-rockchip-typec.txt - Type-C PHY
|
||||
|
||||
Example device nodes:
|
||||
|
@ -16,7 +16,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68220
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl68220'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -26,7 +26,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68221
|
||||
|
||||
Prefix: 'raa_dmpvr2_3rail'
|
||||
Prefix: 'isl68221'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -36,7 +36,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68222
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl68222'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -46,7 +46,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68223
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl68223'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -56,7 +56,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68224
|
||||
|
||||
Prefix: 'raa_dmpvr2_3rail'
|
||||
Prefix: 'isl68224'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -66,7 +66,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68225
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl68225'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -76,7 +76,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68226
|
||||
|
||||
Prefix: 'raa_dmpvr2_3rail'
|
||||
Prefix: 'isl68226'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -86,7 +86,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68227
|
||||
|
||||
Prefix: 'raa_dmpvr2_1rail'
|
||||
Prefix: 'isl68227'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -96,7 +96,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68229
|
||||
|
||||
Prefix: 'raa_dmpvr2_3rail'
|
||||
Prefix: 'isl68229'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -106,7 +106,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68233
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl68233'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -116,7 +116,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68239
|
||||
|
||||
Prefix: 'raa_dmpvr2_3rail'
|
||||
Prefix: 'isl68239'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -126,7 +126,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69222
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69222'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -136,7 +136,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69223
|
||||
|
||||
Prefix: 'raa_dmpvr2_3rail'
|
||||
Prefix: 'isl69223'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -146,7 +146,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69224
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69224'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -156,7 +156,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69225
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69225'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -166,7 +166,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69227
|
||||
|
||||
Prefix: 'raa_dmpvr2_3rail'
|
||||
Prefix: 'isl69227'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -176,7 +176,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69228
|
||||
|
||||
Prefix: 'raa_dmpvr2_3rail'
|
||||
Prefix: 'isl69228'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -186,7 +186,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69234
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69234'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -196,7 +196,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69236
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69236'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -206,7 +206,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69239
|
||||
|
||||
Prefix: 'raa_dmpvr2_3rail'
|
||||
Prefix: 'isl69239'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -216,7 +216,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69242
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69242'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -226,7 +226,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69243
|
||||
|
||||
Prefix: 'raa_dmpvr2_1rail'
|
||||
Prefix: 'isl69243'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -236,7 +236,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69247
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69247'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -246,7 +246,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69248
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69248'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -256,7 +256,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69254
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69254'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -266,7 +266,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69255
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69255'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -276,7 +276,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69256
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69256'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -286,7 +286,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69259
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69259'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -296,7 +296,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69260
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69260'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -306,7 +306,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69268
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69268'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -316,7 +316,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69269
|
||||
|
||||
Prefix: 'raa_dmpvr2_3rail'
|
||||
Prefix: 'isl69269'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -326,7 +326,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69298
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69298'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -336,7 +336,7 @@ Supported chips:
|
||||
|
||||
* Renesas RAA228000
|
||||
|
||||
Prefix: 'raa_dmpvr2_hv'
|
||||
Prefix: 'raa228000'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -346,7 +346,7 @@ Supported chips:
|
||||
|
||||
* Renesas RAA228004
|
||||
|
||||
Prefix: 'raa_dmpvr2_hv'
|
||||
Prefix: 'raa228004'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -356,7 +356,7 @@ Supported chips:
|
||||
|
||||
* Renesas RAA228006
|
||||
|
||||
Prefix: 'raa_dmpvr2_hv'
|
||||
Prefix: 'raa228006'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -366,7 +366,7 @@ Supported chips:
|
||||
|
||||
* Renesas RAA228228
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'raa228228'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -376,7 +376,7 @@ Supported chips:
|
||||
|
||||
* Renesas RAA229001
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'raa229001'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -386,7 +386,7 @@ Supported chips:
|
||||
|
||||
* Renesas RAA229004
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'raa229004'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
|
@ -1241,7 +1241,8 @@ When kbuild executes, the following steps are followed (roughly):
|
||||
will be displayed with "make KBUILD_VERBOSE=0".
|
||||
|
||||
|
||||
--- 6.9 Preprocessing linker scripts
|
||||
6.9 Preprocessing linker scripts
|
||||
--------------------------------
|
||||
|
||||
When the vmlinux image is built, the linker script
|
||||
arch/$(ARCH)/kernel/vmlinux.lds is used.
|
||||
|
@ -983,6 +983,13 @@ ip_early_demux - BOOLEAN
|
||||
reduces overall throughput, in such case you should disable it.
|
||||
Default: 1
|
||||
|
||||
ping_group_range - 2 INTEGERS
|
||||
Restrict ICMP_PROTO datagram sockets to users in the group range.
|
||||
The default is "1 0", meaning, that nobody (not even root) may
|
||||
create ping sockets. Setting it to "100 100" would grant permissions
|
||||
to the single group. "0 4294967295" would enable it for the world, "100
|
||||
4294967295" would enable it for the users, but not daemons.
|
||||
|
||||
tcp_early_demux - BOOLEAN
|
||||
Enable early demux for established TCP sockets.
|
||||
Default: 1
|
||||
|
65
MAINTAINERS
65
MAINTAINERS
@ -189,7 +189,7 @@ F: drivers/net/hamradio/6pack.c
|
||||
M: Johannes Berg <johannes@sipsolutions.net>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
W: http://wireless.kernel.org/
|
||||
W: https://wireless.wiki.kernel.org/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
|
||||
F: Documentation/driver-api/80211/cfg80211.rst
|
||||
@ -505,7 +505,7 @@ F: drivers/hwmon/adm1029.c
|
||||
ADM8211 WIRELESS DRIVER
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Orphan
|
||||
W: http://wireless.kernel.org/
|
||||
W: https://wireless.wiki.kernel.org/
|
||||
F: drivers/net/wireless/admtek/adm8211.*
|
||||
|
||||
ADP1653 FLASH CONTROLLER DRIVER
|
||||
@ -1323,7 +1323,10 @@ ARM INTEGRATOR, VERSATILE AND REALVIEW SUPPORT
|
||||
M: Linus Walleij <linus.walleij@linaro.org>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: Documentation/devicetree/bindings/arm/arm-boards
|
||||
F: Documentation/devicetree/bindings/arm/arm,integrator.yaml
|
||||
F: Documentation/devicetree/bindings/arm/arm,realview.yaml
|
||||
F: Documentation/devicetree/bindings/arm/arm,versatile.yaml
|
||||
F: Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
|
||||
F: Documentation/devicetree/bindings/auxdisplay/arm-charlcd.txt
|
||||
F: Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml
|
||||
F: Documentation/devicetree/bindings/i2c/i2c-versatile.txt
|
||||
@ -2847,14 +2850,14 @@ M: Nick Kossifidis <mickflemm@gmail.com>
|
||||
M: Luis Chamberlain <mcgrof@kernel.org>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
W: http://wireless.kernel.org/en/users/Drivers/ath5k
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath5k
|
||||
F: drivers/net/wireless/ath/ath5k/
|
||||
|
||||
ATHEROS ATH6KL WIRELESS DRIVER
|
||||
M: Kalle Valo <kvalo@codeaurora.org>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Supported
|
||||
W: http://wireless.kernel.org/en/users/Drivers/ath6kl
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath6kl
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
|
||||
F: drivers/net/wireless/ath/ath6kl/
|
||||
|
||||
@ -3017,7 +3020,7 @@ B43 WIRELESS DRIVER
|
||||
L: linux-wireless@vger.kernel.org
|
||||
L: b43-dev@lists.infradead.org
|
||||
S: Odd Fixes
|
||||
W: http://wireless.kernel.org/en/users/Drivers/b43
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/b43
|
||||
F: drivers/net/wireless/broadcom/b43/
|
||||
|
||||
B43LEGACY WIRELESS DRIVER
|
||||
@ -3025,7 +3028,7 @@ M: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
L: b43-dev@lists.infradead.org
|
||||
S: Maintained
|
||||
W: http://wireless.kernel.org/en/users/Drivers/b43
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/b43
|
||||
F: drivers/net/wireless/broadcom/b43legacy/
|
||||
|
||||
BACKLIGHT CLASS/SUBSYSTEM
|
||||
@ -3840,7 +3843,7 @@ CARL9170 LINUX COMMUNITY WIRELESS DRIVER
|
||||
M: Christian Lamparter <chunkeey@googlemail.com>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
W: http://wireless.kernel.org/en/users/Drivers/carl9170
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/carl9170
|
||||
F: drivers/net/wireless/ath/carl9170/
|
||||
|
||||
CAVIUM I2C DRIVER
|
||||
@ -5173,6 +5176,7 @@ S: Maintained
|
||||
F: drivers/soc/fsl/dpio
|
||||
|
||||
DPAA2 ETHERNET DRIVER
|
||||
M: Ioana Ciornei <ioana.ciornei@nxp.com>
|
||||
M: Ioana Radulescu <ruxandra.radulescu@nxp.com>
|
||||
L: netdev@vger.kernel.org
|
||||
S: Maintained
|
||||
@ -5552,7 +5556,7 @@ M: Chen-Yu Tsai <wens@csie.org>
|
||||
L: dri-devel@lists.freedesktop.org
|
||||
S: Supported
|
||||
T: git git://anongit.freedesktop.org/drm/drm-misc
|
||||
F: Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt
|
||||
F: Documentation/devicetree/bindings/display/allwinner*
|
||||
F: drivers/gpu/drm/sun4i/
|
||||
|
||||
DRM DRIVERS FOR AMLOGIC SOCS
|
||||
@ -9326,6 +9330,7 @@ M: Christian Borntraeger <borntraeger@de.ibm.com>
|
||||
M: Janosch Frank <frankja@linux.ibm.com>
|
||||
R: David Hildenbrand <david@redhat.com>
|
||||
R: Cornelia Huck <cohuck@redhat.com>
|
||||
R: Claudio Imbrenda <imbrenda@linux.ibm.com>
|
||||
L: kvm@vger.kernel.org
|
||||
S: Supported
|
||||
W: http://www.ibm.com/developerworks/linux/linux390/
|
||||
@ -9413,6 +9418,13 @@ F: include/linux/keyctl.h
|
||||
F: include/uapi/linux/keyctl.h
|
||||
F: security/keys/
|
||||
|
||||
KFIFO
|
||||
M: Stefani Seibold <stefani@seibold.net>
|
||||
S: Maintained
|
||||
F: include/linux/kfifo.h
|
||||
F: lib/kfifo.c
|
||||
F: samples/kfifo/
|
||||
|
||||
KGDB / KDB /debug_core
|
||||
M: Jason Wessel <jason.wessel@windriver.com>
|
||||
M: Daniel Thompson <daniel.thompson@linaro.org>
|
||||
@ -10064,7 +10076,7 @@ MAC80211
|
||||
M: Johannes Berg <johannes@sipsolutions.net>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
W: http://wireless.kernel.org/
|
||||
W: https://wireless.wiki.kernel.org/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
|
||||
F: Documentation/networking/mac80211-injection.txt
|
||||
@ -10694,7 +10706,6 @@ MEDIATEK MT76 WIRELESS LAN DRIVER
|
||||
M: Felix Fietkau <nbd@nbd.name>
|
||||
M: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
|
||||
R: Ryder Lee <ryder.lee@mediatek.com>
|
||||
R: Roy Luo <royluo@google.com>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/net/wireless/mediatek/mt76/
|
||||
@ -12645,7 +12656,7 @@ F: fs/orangefs/
|
||||
ORINOCO DRIVER
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Orphan
|
||||
W: http://wireless.kernel.org/en/users/Drivers/orinoco
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/orinoco
|
||||
W: http://www.nongnu.org/orinoco/
|
||||
F: drivers/net/wireless/intersil/orinoco/
|
||||
|
||||
@ -12671,7 +12682,7 @@ P54 WIRELESS DRIVER
|
||||
M: Christian Lamparter <chunkeey@googlemail.com>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
W: http://wireless.kernel.org/en/users/Drivers/p54
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/p54
|
||||
F: drivers/net/wireless/intersil/p54/
|
||||
|
||||
PACKING
|
||||
@ -13039,7 +13050,7 @@ F: drivers/pci/controller/pci-xgene-msi.c
|
||||
|
||||
PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS
|
||||
M: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
R: Andrew Murray <amurray@thegoodpenguin.co.uk>
|
||||
R: Rob Herring <robh@kernel.org>
|
||||
L: linux-pci@vger.kernel.org
|
||||
S: Supported
|
||||
Q: http://patchwork.ozlabs.org/project/linux-pci/list/
|
||||
@ -13592,7 +13603,7 @@ PRISM54 WIRELESS DRIVER
|
||||
M: Luis Chamberlain <mcgrof@kernel.org>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Obsolete
|
||||
W: http://wireless.kernel.org/en/users/Drivers/p54
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/p54
|
||||
F: drivers/net/wireless/intersil/prism54/
|
||||
|
||||
PROC FILESYSTEM
|
||||
@ -13854,7 +13865,8 @@ S: Maintained
|
||||
F: drivers/scsi/qla1280.[ch]
|
||||
|
||||
QLOGIC QLA2XXX FC-SCSI DRIVER
|
||||
M: hmadhani@marvell.com
|
||||
M: Nilesh Javali <njavali@marvell.com>
|
||||
M: GR-QLogic-Storage-Upstream@marvell.com
|
||||
L: linux-scsi@vger.kernel.org
|
||||
S: Supported
|
||||
F: Documentation/scsi/LICENSE.qla2xxx
|
||||
@ -13932,7 +13944,7 @@ QUALCOMM ATHEROS ATH10K WIRELESS DRIVER
|
||||
M: Kalle Valo <kvalo@codeaurora.org>
|
||||
L: ath10k@lists.infradead.org
|
||||
S: Supported
|
||||
W: http://wireless.kernel.org/en/users/Drivers/ath10k
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath10k
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
|
||||
F: drivers/net/wireless/ath/ath10k/
|
||||
|
||||
@ -13947,7 +13959,7 @@ QUALCOMM ATHEROS ATH9K WIRELESS DRIVER
|
||||
M: QCA ath9k Development <ath9k-devel@qca.qualcomm.com>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Supported
|
||||
W: http://wireless.kernel.org/en/users/Drivers/ath9k
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath9k
|
||||
F: drivers/net/wireless/ath/ath9k/
|
||||
|
||||
QUALCOMM CAMERA SUBSYSTEM DRIVER
|
||||
@ -14044,13 +14056,12 @@ QUALCOMM WCN36XX WIRELESS DRIVER
|
||||
M: Kalle Valo <kvalo@codeaurora.org>
|
||||
L: wcn36xx@lists.infradead.org
|
||||
S: Supported
|
||||
W: http://wireless.kernel.org/en/users/Drivers/wcn36xx
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/wcn36xx
|
||||
T: git git://github.com/KrasnikovEugene/wcn36xx.git
|
||||
F: drivers/net/wireless/ath/wcn36xx/
|
||||
|
||||
QUANTENNA QTNFMAC WIRELESS DRIVER
|
||||
M: Igor Mitsyanko <imitsyanko@quantenna.com>
|
||||
M: Avinash Patil <avinashp@quantenna.com>
|
||||
M: Sergey Matyukevich <smatyukevich@quantenna.com>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
@ -14272,7 +14283,7 @@ REALTEK WIRELESS DRIVER (rtlwifi family)
|
||||
M: Ping-Ke Shih <pkshih@realtek.com>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
W: http://wireless.kernel.org/
|
||||
W: https://wireless.wiki.kernel.org/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
|
||||
F: drivers/net/wireless/realtek/rtlwifi/
|
||||
|
||||
@ -14407,7 +14418,7 @@ RFKILL
|
||||
M: Johannes Berg <johannes@sipsolutions.net>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
W: http://wireless.kernel.org/
|
||||
W: https://wireless.wiki.kernel.org/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
|
||||
F: Documentation/ABI/stable/sysfs-class-rfkill
|
||||
@ -14556,7 +14567,7 @@ F: drivers/media/dvb-frontends/rtl2832_sdr*
|
||||
RTL8180 WIRELESS DRIVER
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Orphan
|
||||
W: http://wireless.kernel.org/
|
||||
W: https://wireless.wiki.kernel.org/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
|
||||
F: drivers/net/wireless/realtek/rtl818x/rtl8180/
|
||||
|
||||
@ -14566,7 +14577,7 @@ M: Hin-Tak Leung <htl10@users.sourceforge.net>
|
||||
M: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
W: http://wireless.kernel.org/
|
||||
W: https://wireless.wiki.kernel.org/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
|
||||
F: drivers/net/wireless/realtek/rtl818x/rtl8187/
|
||||
|
||||
@ -16921,8 +16932,8 @@ F: drivers/media/platform/ti-vpe/
|
||||
TI WILINK WIRELESS DRIVERS
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Orphan
|
||||
W: http://wireless.kernel.org/en/users/Drivers/wl12xx
|
||||
W: http://wireless.kernel.org/en/users/Drivers/wl1251
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/wl12xx
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/wl1251
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git
|
||||
F: drivers/net/wireless/ti/
|
||||
F: include/linux/wl12xx.h
|
||||
@ -18204,7 +18215,7 @@ M: Maya Erez <merez@codeaurora.org>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
L: wil6210@qti.qualcomm.com
|
||||
S: Supported
|
||||
W: http://wireless.kernel.org/en/users/Drivers/wil6210
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/wil6210
|
||||
F: drivers/net/wireless/ath/wil6210/
|
||||
|
||||
WIMAX STACK
|
||||
|
2
Makefile
2
Makefile
@ -2,7 +2,7 @@
|
||||
VERSION = 5
|
||||
PATCHLEVEL = 7
|
||||
SUBLEVEL = 0
|
||||
EXTRAVERSION = -rc1
|
||||
EXTRAVERSION = -rc2
|
||||
NAME = Kleptomaniac Octopus
|
||||
|
||||
# *DOCUMENTATION*
|
||||
|
@ -3,7 +3,6 @@
|
||||
* Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
|
||||
*
|
||||
* Amit Bhor, Sameer Dhavale: Codito Technologies 2004
|
||||
|
||||
*/
|
||||
|
||||
#ifndef _ASM_ARC_MODULE_H
|
||||
@ -19,8 +18,4 @@ struct mod_arch_specific {
|
||||
const char *secstr;
|
||||
};
|
||||
|
||||
#define MODULE_PROC_FAMILY "ARC700"
|
||||
|
||||
#define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY
|
||||
|
||||
#endif /* _ASM_ARC_MODULE_H */
|
||||
|
8
arch/arc/include/asm/vermagic.h
Normal file
8
arch/arc/include/asm/vermagic.h
Normal file
@ -0,0 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
#ifndef _ASM_VERMAGIC_H
|
||||
#define _ASM_VERMAGIC_H
|
||||
|
||||
#define MODULE_ARCH_VERMAGIC "ARC700"
|
||||
|
||||
#endif /* _ASM_VERMAGIC_H */
|
@ -14,6 +14,9 @@
|
||||
soc {
|
||||
firmware: firmware {
|
||||
compatible = "raspberrypi,bcm2835-firmware", "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
mboxes = <&mailbox>;
|
||||
dma-ranges;
|
||||
};
|
||||
|
@ -372,6 +372,7 @@
|
||||
"dsi0_ddr2",
|
||||
"dsi0_ddr";
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
aux: aux@7e215000 {
|
||||
|
@ -341,6 +341,11 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* RNG not directly accessible on N950/N9. */
|
||||
&rng_target {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&usb_otg_hs {
|
||||
interface-type = <0>;
|
||||
usb-phy = <&usb2_phy>;
|
||||
|
@ -37,30 +37,6 @@ struct mod_arch_specific {
|
||||
struct module;
|
||||
u32 get_module_plt(struct module *mod, unsigned long loc, Elf32_Addr val);
|
||||
|
||||
/*
|
||||
* Add the ARM architecture version to the version magic string
|
||||
*/
|
||||
#define MODULE_ARCH_VERMAGIC_ARMVSN "ARMv" __stringify(__LINUX_ARM_ARCH__) " "
|
||||
|
||||
/* Add __virt_to_phys patching state as well */
|
||||
#ifdef CONFIG_ARM_PATCH_PHYS_VIRT
|
||||
#define MODULE_ARCH_VERMAGIC_P2V "p2v8 "
|
||||
#else
|
||||
#define MODULE_ARCH_VERMAGIC_P2V ""
|
||||
#endif
|
||||
|
||||
/* Add instruction set architecture tag to distinguish ARM/Thumb kernels */
|
||||
#ifdef CONFIG_THUMB2_KERNEL
|
||||
#define MODULE_ARCH_VERMAGIC_ARMTHUMB "thumb2 "
|
||||
#else
|
||||
#define MODULE_ARCH_VERMAGIC_ARMTHUMB ""
|
||||
#endif
|
||||
|
||||
#define MODULE_ARCH_VERMAGIC \
|
||||
MODULE_ARCH_VERMAGIC_ARMVSN \
|
||||
MODULE_ARCH_VERMAGIC_ARMTHUMB \
|
||||
MODULE_ARCH_VERMAGIC_P2V
|
||||
|
||||
#ifdef CONFIG_THUMB2_KERNEL
|
||||
#define HAVE_ARCH_KALLSYMS_SYMBOL_VALUE
|
||||
static inline unsigned long kallsyms_symbol_value(const Elf_Sym *sym)
|
||||
|
31
arch/arm/include/asm/vermagic.h
Normal file
31
arch/arm/include/asm/vermagic.h
Normal file
@ -0,0 +1,31 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef _ASM_VERMAGIC_H
|
||||
#define _ASM_VERMAGIC_H
|
||||
|
||||
#include <linux/stringify.h>
|
||||
|
||||
/*
|
||||
* Add the ARM architecture version to the version magic string
|
||||
*/
|
||||
#define MODULE_ARCH_VERMAGIC_ARMVSN "ARMv" __stringify(__LINUX_ARM_ARCH__) " "
|
||||
|
||||
/* Add __virt_to_phys patching state as well */
|
||||
#ifdef CONFIG_ARM_PATCH_PHYS_VIRT
|
||||
#define MODULE_ARCH_VERMAGIC_P2V "p2v8 "
|
||||
#else
|
||||
#define MODULE_ARCH_VERMAGIC_P2V ""
|
||||
#endif
|
||||
|
||||
/* Add instruction set architecture tag to distinguish ARM/Thumb kernels */
|
||||
#ifdef CONFIG_THUMB2_KERNEL
|
||||
#define MODULE_ARCH_VERMAGIC_ARMTHUMB "thumb2 "
|
||||
#else
|
||||
#define MODULE_ARCH_VERMAGIC_ARMTHUMB ""
|
||||
#endif
|
||||
|
||||
#define MODULE_ARCH_VERMAGIC \
|
||||
MODULE_ARCH_VERMAGIC_ARMVSN \
|
||||
MODULE_ARCH_VERMAGIC_ARMTHUMB \
|
||||
MODULE_ARCH_VERMAGIC_P2V
|
||||
|
||||
#endif /* _ASM_VERMAGIC_H */
|
@ -91,8 +91,10 @@ AFLAGS_suspend-imx6.o :=-Wa,-march=armv7-a
|
||||
obj-$(CONFIG_SOC_IMX6) += suspend-imx6.o
|
||||
obj-$(CONFIG_SOC_IMX53) += suspend-imx53.o
|
||||
endif
|
||||
ifeq ($(CONFIG_ARM_CPU_SUSPEND),y)
|
||||
AFLAGS_resume-imx6.o :=-Wa,-march=armv7-a
|
||||
obj-$(CONFIG_SOC_IMX6) += resume-imx6.o
|
||||
endif
|
||||
obj-$(CONFIG_SOC_IMX6) += pm-imx6.o
|
||||
|
||||
obj-$(CONFIG_SOC_IMX1) += mach-imx1.o
|
||||
|
@ -36,7 +36,7 @@
|
||||
|
||||
#include <linux/mm.h>
|
||||
|
||||
struct start_info _xen_start_info;
|
||||
static struct start_info _xen_start_info;
|
||||
struct start_info *xen_start_info = &_xen_start_info;
|
||||
EXPORT_SYMBOL(xen_start_info);
|
||||
|
||||
|
@ -7,8 +7,6 @@
|
||||
|
||||
#include <asm-generic/module.h>
|
||||
|
||||
#define MODULE_ARCH_VERMAGIC "aarch64"
|
||||
|
||||
#ifdef CONFIG_ARM64_MODULE_PLTS
|
||||
struct mod_plt_sec {
|
||||
int plt_shndx;
|
||||
|
@ -47,7 +47,7 @@ static inline void ptrauth_keys_init_user(struct ptrauth_keys_user *keys)
|
||||
get_random_bytes(&keys->apga, sizeof(keys->apga));
|
||||
}
|
||||
|
||||
#define __ptrauth_key_install(k, v) \
|
||||
#define __ptrauth_key_install_nosync(k, v) \
|
||||
do { \
|
||||
struct ptrauth_key __pki_v = (v); \
|
||||
write_sysreg_s(__pki_v.lo, SYS_ ## k ## KEYLO_EL1); \
|
||||
@ -62,8 +62,11 @@ static __always_inline void ptrauth_keys_init_kernel(struct ptrauth_keys_kernel
|
||||
|
||||
static __always_inline void ptrauth_keys_switch_kernel(struct ptrauth_keys_kernel *keys)
|
||||
{
|
||||
if (system_supports_address_auth())
|
||||
__ptrauth_key_install(APIA, keys->apia);
|
||||
if (!system_supports_address_auth())
|
||||
return;
|
||||
|
||||
__ptrauth_key_install_nosync(APIA, keys->apia);
|
||||
isb();
|
||||
}
|
||||
|
||||
extern int ptrauth_prctl_reset_keys(struct task_struct *tsk, unsigned long arg);
|
||||
|
@ -49,7 +49,9 @@
|
||||
#ifndef CONFIG_BROKEN_GAS_INST
|
||||
|
||||
#ifdef __ASSEMBLY__
|
||||
#define __emit_inst(x) .inst (x)
|
||||
// The space separator is omitted so that __emit_inst(x) can be parsed as
|
||||
// either an assembler directive or an assembler macro argument.
|
||||
#define __emit_inst(x) .inst(x)
|
||||
#else
|
||||
#define __emit_inst(x) ".inst " __stringify((x)) "\n\t"
|
||||
#endif
|
||||
|
10
arch/arm64/include/asm/vermagic.h
Normal file
10
arch/arm64/include/asm/vermagic.h
Normal file
@ -0,0 +1,10 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) 2012 ARM Ltd.
|
||||
*/
|
||||
#ifndef _ASM_VERMAGIC_H
|
||||
#define _ASM_VERMAGIC_H
|
||||
|
||||
#define MODULE_ARCH_VERMAGIC "aarch64"
|
||||
|
||||
#endif /* _ASM_VERMAGIC_H */
|
@ -260,18 +260,7 @@ static int __aarch32_alloc_vdso_pages(void)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = aarch32_alloc_kuser_vdso_page();
|
||||
if (ret) {
|
||||
unsigned long c_vvar =
|
||||
(unsigned long)page_to_virt(aarch32_vdso_pages[C_VVAR]);
|
||||
unsigned long c_vdso =
|
||||
(unsigned long)page_to_virt(aarch32_vdso_pages[C_VDSO]);
|
||||
|
||||
free_page(c_vvar);
|
||||
free_page(c_vdso);
|
||||
}
|
||||
|
||||
return ret;
|
||||
return aarch32_alloc_kuser_vdso_page();
|
||||
}
|
||||
#else
|
||||
static int __aarch32_alloc_vdso_pages(void)
|
||||
|
2
arch/h8300/kernel/.gitignore
vendored
Normal file
2
arch/h8300/kernel/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
vmlinux.lds
|
@ -3,11 +3,11 @@
|
||||
* Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MODULE_H
|
||||
#define _ASM_MODULE_H
|
||||
#ifndef _ASM_VERMAGIC_H
|
||||
#define _ASM_VERMAGIC_H
|
||||
|
||||
#include <asm-generic/module.h>
|
||||
#include <linux/stringify.h>
|
||||
|
||||
#define MODULE_ARCH_VERMAGIC __stringify(PROCESSOR_MODEL_NAME) " "
|
||||
|
||||
#endif
|
||||
#endif /* _ASM_VERMAGIC_H */
|
@ -26,10 +26,6 @@ struct mod_arch_specific {
|
||||
unsigned int next_got_entry; /* index of next available got entry */
|
||||
};
|
||||
|
||||
#define MODULE_PROC_FAMILY "ia64"
|
||||
#define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY \
|
||||
"gcc-" __stringify(__GNUC__) "." __stringify(__GNUC_MINOR__)
|
||||
|
||||
#define ARCH_SHF_SMALL SHF_IA_64_SHORT
|
||||
|
||||
#endif /* _ASM_IA64_MODULE_H */
|
||||
|
15
arch/ia64/include/asm/vermagic.h
Normal file
15
arch/ia64/include/asm/vermagic.h
Normal file
@ -0,0 +1,15 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (C) 2003 Hewlett-Packard Co
|
||||
* David Mosberger-Tang <davidm@hpl.hp.com>
|
||||
*/
|
||||
|
||||
#ifndef _ASM_VERMAGIC_H
|
||||
#define _ASM_VERMAGIC_H
|
||||
|
||||
#include <linux/stringify.h>
|
||||
|
||||
#define MODULE_ARCH_VERMAGIC "ia64" \
|
||||
"gcc-" __stringify(__GNUC__) "." __stringify(__GNUC_MINOR__)
|
||||
|
||||
#endif /* _ASM_VERMAGIC_H */
|
@ -83,65 +83,4 @@ search_module_dbetables(unsigned long addr)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CPU_BMIPS
|
||||
#define MODULE_PROC_FAMILY "BMIPS "
|
||||
#elif defined CONFIG_CPU_MIPS32_R1
|
||||
#define MODULE_PROC_FAMILY "MIPS32_R1 "
|
||||
#elif defined CONFIG_CPU_MIPS32_R2
|
||||
#define MODULE_PROC_FAMILY "MIPS32_R2 "
|
||||
#elif defined CONFIG_CPU_MIPS32_R6
|
||||
#define MODULE_PROC_FAMILY "MIPS32_R6 "
|
||||
#elif defined CONFIG_CPU_MIPS64_R1
|
||||
#define MODULE_PROC_FAMILY "MIPS64_R1 "
|
||||
#elif defined CONFIG_CPU_MIPS64_R2
|
||||
#define MODULE_PROC_FAMILY "MIPS64_R2 "
|
||||
#elif defined CONFIG_CPU_MIPS64_R6
|
||||
#define MODULE_PROC_FAMILY "MIPS64_R6 "
|
||||
#elif defined CONFIG_CPU_R3000
|
||||
#define MODULE_PROC_FAMILY "R3000 "
|
||||
#elif defined CONFIG_CPU_TX39XX
|
||||
#define MODULE_PROC_FAMILY "TX39XX "
|
||||
#elif defined CONFIG_CPU_VR41XX
|
||||
#define MODULE_PROC_FAMILY "VR41XX "
|
||||
#elif defined CONFIG_CPU_R4X00
|
||||
#define MODULE_PROC_FAMILY "R4X00 "
|
||||
#elif defined CONFIG_CPU_TX49XX
|
||||
#define MODULE_PROC_FAMILY "TX49XX "
|
||||
#elif defined CONFIG_CPU_R5000
|
||||
#define MODULE_PROC_FAMILY "R5000 "
|
||||
#elif defined CONFIG_CPU_R5500
|
||||
#define MODULE_PROC_FAMILY "R5500 "
|
||||
#elif defined CONFIG_CPU_NEVADA
|
||||
#define MODULE_PROC_FAMILY "NEVADA "
|
||||
#elif defined CONFIG_CPU_R10000
|
||||
#define MODULE_PROC_FAMILY "R10000 "
|
||||
#elif defined CONFIG_CPU_RM7000
|
||||
#define MODULE_PROC_FAMILY "RM7000 "
|
||||
#elif defined CONFIG_CPU_SB1
|
||||
#define MODULE_PROC_FAMILY "SB1 "
|
||||
#elif defined CONFIG_CPU_LOONGSON32
|
||||
#define MODULE_PROC_FAMILY "LOONGSON32 "
|
||||
#elif defined CONFIG_CPU_LOONGSON2EF
|
||||
#define MODULE_PROC_FAMILY "LOONGSON2EF "
|
||||
#elif defined CONFIG_CPU_LOONGSON64
|
||||
#define MODULE_PROC_FAMILY "LOONGSON64 "
|
||||
#elif defined CONFIG_CPU_CAVIUM_OCTEON
|
||||
#define MODULE_PROC_FAMILY "OCTEON "
|
||||
#elif defined CONFIG_CPU_XLR
|
||||
#define MODULE_PROC_FAMILY "XLR "
|
||||
#elif defined CONFIG_CPU_XLP
|
||||
#define MODULE_PROC_FAMILY "XLP "
|
||||
#else
|
||||
#error MODULE_PROC_FAMILY undefined for your processor configuration
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_32BIT
|
||||
#define MODULE_KERNEL_TYPE "32BIT "
|
||||
#elif defined CONFIG_64BIT
|
||||
#define MODULE_KERNEL_TYPE "64BIT "
|
||||
#endif
|
||||
|
||||
#define MODULE_ARCH_VERMAGIC \
|
||||
MODULE_PROC_FAMILY MODULE_KERNEL_TYPE
|
||||
|
||||
#endif /* _ASM_MODULE_H */
|
||||
|
66
arch/mips/include/asm/vermagic.h
Normal file
66
arch/mips/include/asm/vermagic.h
Normal file
@ -0,0 +1,66 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef _ASM_VERMAGIC_H
|
||||
#define _ASM_VERMAGIC_H
|
||||
|
||||
#ifdef CONFIG_CPU_BMIPS
|
||||
#define MODULE_PROC_FAMILY "BMIPS "
|
||||
#elif defined CONFIG_CPU_MIPS32_R1
|
||||
#define MODULE_PROC_FAMILY "MIPS32_R1 "
|
||||
#elif defined CONFIG_CPU_MIPS32_R2
|
||||
#define MODULE_PROC_FAMILY "MIPS32_R2 "
|
||||
#elif defined CONFIG_CPU_MIPS32_R6
|
||||
#define MODULE_PROC_FAMILY "MIPS32_R6 "
|
||||
#elif defined CONFIG_CPU_MIPS64_R1
|
||||
#define MODULE_PROC_FAMILY "MIPS64_R1 "
|
||||
#elif defined CONFIG_CPU_MIPS64_R2
|
||||
#define MODULE_PROC_FAMILY "MIPS64_R2 "
|
||||
#elif defined CONFIG_CPU_MIPS64_R6
|
||||
#define MODULE_PROC_FAMILY "MIPS64_R6 "
|
||||
#elif defined CONFIG_CPU_R3000
|
||||
#define MODULE_PROC_FAMILY "R3000 "
|
||||
#elif defined CONFIG_CPU_TX39XX
|
||||
#define MODULE_PROC_FAMILY "TX39XX "
|
||||
#elif defined CONFIG_CPU_VR41XX
|
||||
#define MODULE_PROC_FAMILY "VR41XX "
|
||||
#elif defined CONFIG_CPU_R4X00
|
||||
#define MODULE_PROC_FAMILY "R4X00 "
|
||||
#elif defined CONFIG_CPU_TX49XX
|
||||
#define MODULE_PROC_FAMILY "TX49XX "
|
||||
#elif defined CONFIG_CPU_R5000
|
||||
#define MODULE_PROC_FAMILY "R5000 "
|
||||
#elif defined CONFIG_CPU_R5500
|
||||
#define MODULE_PROC_FAMILY "R5500 "
|
||||
#elif defined CONFIG_CPU_NEVADA
|
||||
#define MODULE_PROC_FAMILY "NEVADA "
|
||||
#elif defined CONFIG_CPU_R10000
|
||||
#define MODULE_PROC_FAMILY "R10000 "
|
||||
#elif defined CONFIG_CPU_RM7000
|
||||
#define MODULE_PROC_FAMILY "RM7000 "
|
||||
#elif defined CONFIG_CPU_SB1
|
||||
#define MODULE_PROC_FAMILY "SB1 "
|
||||
#elif defined CONFIG_CPU_LOONGSON32
|
||||
#define MODULE_PROC_FAMILY "LOONGSON32 "
|
||||
#elif defined CONFIG_CPU_LOONGSON2EF
|
||||
#define MODULE_PROC_FAMILY "LOONGSON2EF "
|
||||
#elif defined CONFIG_CPU_LOONGSON64
|
||||
#define MODULE_PROC_FAMILY "LOONGSON64 "
|
||||
#elif defined CONFIG_CPU_CAVIUM_OCTEON
|
||||
#define MODULE_PROC_FAMILY "OCTEON "
|
||||
#elif defined CONFIG_CPU_XLR
|
||||
#define MODULE_PROC_FAMILY "XLR "
|
||||
#elif defined CONFIG_CPU_XLP
|
||||
#define MODULE_PROC_FAMILY "XLP "
|
||||
#else
|
||||
#error MODULE_PROC_FAMILY undefined for your processor configuration
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_32BIT
|
||||
#define MODULE_KERNEL_TYPE "32BIT "
|
||||
#elif defined CONFIG_64BIT
|
||||
#define MODULE_KERNEL_TYPE "64BIT "
|
||||
#endif
|
||||
|
||||
#define MODULE_ARCH_VERMAGIC \
|
||||
MODULE_PROC_FAMILY MODULE_KERNEL_TYPE
|
||||
|
||||
#endif /* _ASM_VERMAGIC_H */
|
@ -1,11 +1,9 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
// Copyright (C) 2005-2017 Andes Technology Corporation
|
||||
|
||||
#ifndef _ASM_NDS32_MODULE_H
|
||||
#define _ASM_NDS32_MODULE_H
|
||||
|
||||
#include <asm-generic/module.h>
|
||||
#ifndef _ASM_VERMAGIC_H
|
||||
#define _ASM_VERMAGIC_H
|
||||
|
||||
#define MODULE_ARCH_VERMAGIC "NDS32v3"
|
||||
|
||||
#endif /* _ASM_NDS32_MODULE_H */
|
||||
#endif /* _ASM_VERMAGIC_H */
|
@ -3,28 +3,10 @@
|
||||
#define _ASM_POWERPC_MODULE_H
|
||||
#ifdef __KERNEL__
|
||||
|
||||
/*
|
||||
*/
|
||||
|
||||
#include <linux/list.h>
|
||||
#include <asm/bug.h>
|
||||
#include <asm-generic/module.h>
|
||||
|
||||
|
||||
#ifdef CONFIG_MPROFILE_KERNEL
|
||||
#define MODULE_ARCH_VERMAGIC_FTRACE "mprofile-kernel "
|
||||
#else
|
||||
#define MODULE_ARCH_VERMAGIC_FTRACE ""
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_RELOCATABLE
|
||||
#define MODULE_ARCH_VERMAGIC_RELOCATABLE "relocatable "
|
||||
#else
|
||||
#define MODULE_ARCH_VERMAGIC_RELOCATABLE ""
|
||||
#endif
|
||||
|
||||
#define MODULE_ARCH_VERMAGIC MODULE_ARCH_VERMAGIC_FTRACE MODULE_ARCH_VERMAGIC_RELOCATABLE
|
||||
|
||||
#ifndef __powerpc64__
|
||||
/*
|
||||
* Thanks to Paul M for explaining this.
|
||||
|
20
arch/powerpc/include/asm/vermagic.h
Normal file
20
arch/powerpc/include/asm/vermagic.h
Normal file
@ -0,0 +1,20 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef _ASM_VERMAGIC_H
|
||||
#define _ASM_VERMAGIC_H
|
||||
|
||||
#ifdef CONFIG_MPROFILE_KERNEL
|
||||
#define MODULE_ARCH_VERMAGIC_FTRACE "mprofile-kernel "
|
||||
#else
|
||||
#define MODULE_ARCH_VERMAGIC_FTRACE ""
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_RELOCATABLE
|
||||
#define MODULE_ARCH_VERMAGIC_RELOCATABLE "relocatable "
|
||||
#else
|
||||
#define MODULE_ARCH_VERMAGIC_RELOCATABLE ""
|
||||
#endif
|
||||
|
||||
#define MODULE_ARCH_VERMAGIC \
|
||||
MODULE_ARCH_VERMAGIC_FTRACE MODULE_ARCH_VERMAGIC_RELOCATABLE
|
||||
|
||||
#endif /* _ASM_VERMAGIC_H */
|
@ -604,18 +604,19 @@ int kvmppc_book3s_hv_page_fault(struct kvm_run *run, struct kvm_vcpu *vcpu,
|
||||
*/
|
||||
local_irq_disable();
|
||||
ptep = __find_linux_pte(vcpu->arch.pgdir, hva, NULL, &shift);
|
||||
pte = __pte(0);
|
||||
if (ptep)
|
||||
pte = *ptep;
|
||||
local_irq_enable();
|
||||
/*
|
||||
* If the PTE disappeared temporarily due to a THP
|
||||
* collapse, just return and let the guest try again.
|
||||
*/
|
||||
if (!ptep) {
|
||||
local_irq_enable();
|
||||
if (!pte_present(pte)) {
|
||||
if (page)
|
||||
put_page(page);
|
||||
return RESUME_GUEST;
|
||||
}
|
||||
pte = *ptep;
|
||||
local_irq_enable();
|
||||
hpa = pte_pfn(pte) << PAGE_SHIFT;
|
||||
pte_size = PAGE_SIZE;
|
||||
if (shift)
|
||||
|
@ -815,18 +815,19 @@ int kvmppc_book3s_instantiate_page(struct kvm_vcpu *vcpu,
|
||||
*/
|
||||
local_irq_disable();
|
||||
ptep = __find_linux_pte(vcpu->arch.pgdir, hva, NULL, &shift);
|
||||
pte = __pte(0);
|
||||
if (ptep)
|
||||
pte = *ptep;
|
||||
local_irq_enable();
|
||||
/*
|
||||
* If the PTE disappeared temporarily due to a THP
|
||||
* collapse, just return and let the guest try again.
|
||||
*/
|
||||
if (!ptep) {
|
||||
local_irq_enable();
|
||||
if (!pte_present(pte)) {
|
||||
if (page)
|
||||
put_page(page);
|
||||
return RESUME_GUEST;
|
||||
}
|
||||
pte = *ptep;
|
||||
local_irq_enable();
|
||||
|
||||
/* If we're logging dirty pages, always map single pages */
|
||||
large_enable = !(memslot->flags & KVM_MEM_LOG_DIRTY_PAGES);
|
||||
|
@ -6,8 +6,6 @@
|
||||
|
||||
#include <asm-generic/module.h>
|
||||
|
||||
#define MODULE_ARCH_VERMAGIC "riscv"
|
||||
|
||||
struct module;
|
||||
unsigned long module_emit_got_entry(struct module *mod, unsigned long val);
|
||||
unsigned long module_emit_plt_entry(struct module *mod, unsigned long val);
|
||||
|
9
arch/riscv/include/asm/vermagic.h
Normal file
9
arch/riscv/include/asm/vermagic.h
Normal file
@ -0,0 +1,9 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/* Copyright (C) 2017 Andes Technology Corporation */
|
||||
|
||||
#ifndef _ASM_VERMAGIC_H
|
||||
#define _ASM_VERMAGIC_H
|
||||
|
||||
#define MODULE_ARCH_VERMAGIC "riscv"
|
||||
|
||||
#endif /* _ASM_VERMAGIC_H */
|
@ -393,7 +393,7 @@ static unsigned long deliverable_irqs(struct kvm_vcpu *vcpu)
|
||||
if (psw_mchk_disabled(vcpu))
|
||||
active_mask &= ~IRQ_PEND_MCHK_MASK;
|
||||
/* PV guest cpus can have a single interruption injected at a time. */
|
||||
if (kvm_s390_pv_cpu_is_protected(vcpu) &&
|
||||
if (kvm_s390_pv_cpu_get_handle(vcpu) &&
|
||||
vcpu->arch.sie_block->iictl != IICTL_CODE_NONE)
|
||||
active_mask &= ~(IRQ_PEND_EXT_II_MASK |
|
||||
IRQ_PEND_IO_MASK |
|
||||
|
@ -1939,6 +1939,9 @@ static int gfn_to_memslot_approx(struct kvm_memslots *slots, gfn_t gfn)
|
||||
start = slot + 1;
|
||||
}
|
||||
|
||||
if (start >= slots->used_slots)
|
||||
return slots->used_slots - 1;
|
||||
|
||||
if (gfn >= memslots[start].base_gfn &&
|
||||
gfn < memslots[start].base_gfn + memslots[start].npages) {
|
||||
atomic_set(&slots->lru_slot, start);
|
||||
|
@ -11,32 +11,4 @@ struct mod_arch_specific {
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CPU_LITTLE_ENDIAN
|
||||
# ifdef CONFIG_CPU_SH2
|
||||
# define MODULE_PROC_FAMILY "SH2LE "
|
||||
# elif defined CONFIG_CPU_SH3
|
||||
# define MODULE_PROC_FAMILY "SH3LE "
|
||||
# elif defined CONFIG_CPU_SH4
|
||||
# define MODULE_PROC_FAMILY "SH4LE "
|
||||
# elif defined CONFIG_CPU_SH5
|
||||
# define MODULE_PROC_FAMILY "SH5LE "
|
||||
# else
|
||||
# error unknown processor family
|
||||
# endif
|
||||
#else
|
||||
# ifdef CONFIG_CPU_SH2
|
||||
# define MODULE_PROC_FAMILY "SH2BE "
|
||||
# elif defined CONFIG_CPU_SH3
|
||||
# define MODULE_PROC_FAMILY "SH3BE "
|
||||
# elif defined CONFIG_CPU_SH4
|
||||
# define MODULE_PROC_FAMILY "SH4BE "
|
||||
# elif defined CONFIG_CPU_SH5
|
||||
# define MODULE_PROC_FAMILY "SH5BE "
|
||||
# else
|
||||
# error unknown processor family
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY
|
||||
|
||||
#endif /* _ASM_SH_MODULE_H */
|
||||
|
34
arch/sh/include/asm/vermagic.h
Normal file
34
arch/sh/include/asm/vermagic.h
Normal file
@ -0,0 +1,34 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
#ifndef _ASM_VERMAGIC_H
|
||||
#define _ASM_VERMAGIC_H
|
||||
|
||||
#ifdef CONFIG_CPU_LITTLE_ENDIAN
|
||||
# ifdef CONFIG_CPU_SH2
|
||||
# define MODULE_PROC_FAMILY "SH2LE "
|
||||
# elif defined CONFIG_CPU_SH3
|
||||
# define MODULE_PROC_FAMILY "SH3LE "
|
||||
# elif defined CONFIG_CPU_SH4
|
||||
# define MODULE_PROC_FAMILY "SH4LE "
|
||||
# elif defined CONFIG_CPU_SH5
|
||||
# define MODULE_PROC_FAMILY "SH5LE "
|
||||
# else
|
||||
# error unknown processor family
|
||||
# endif
|
||||
#else
|
||||
# ifdef CONFIG_CPU_SH2
|
||||
# define MODULE_PROC_FAMILY "SH2BE "
|
||||
# elif defined CONFIG_CPU_SH3
|
||||
# define MODULE_PROC_FAMILY "SH3BE "
|
||||
# elif defined CONFIG_CPU_SH4
|
||||
# define MODULE_PROC_FAMILY "SH4BE "
|
||||
# elif defined CONFIG_CPU_SH5
|
||||
# define MODULE_PROC_FAMILY "SH5BE "
|
||||
# else
|
||||
# error unknown processor family
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY
|
||||
|
||||
#endif /* _ASM_VERMAGIC_H */
|
@ -412,7 +412,7 @@ int arch_add_memory(int nid, u64 start, u64 size,
|
||||
unsigned long nr_pages = size >> PAGE_SHIFT;
|
||||
int ret;
|
||||
|
||||
if (WARN_ON_ONCE(params->pgprot.pgprot != PAGE_KERNEL.pgprot)
|
||||
if (WARN_ON_ONCE(params->pgprot.pgprot != PAGE_KERNEL.pgprot))
|
||||
return -EINVAL;
|
||||
|
||||
/* We only have ZONE_NORMAL, so this is easy.. */
|
||||
|
@ -140,6 +140,7 @@ export CFLAGS_vmlinux := $(LINK-y) $(LINK_WRAPS) $(LD_FLAGS_CMDLINE)
|
||||
# When cleaning we don't include .config, so we don't include
|
||||
# TT or skas makefiles and don't clean skas_ptregs.h.
|
||||
CLEAN_FILES += linux x.i gmon.out
|
||||
MRPROPER_DIRS += arch/$(SUBARCH)/include/generated
|
||||
|
||||
archclean:
|
||||
@find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \
|
||||
|
@ -149,7 +149,7 @@ config X86
|
||||
select HAVE_ARCH_TRACEHOOK
|
||||
select HAVE_ARCH_TRANSPARENT_HUGEPAGE
|
||||
select HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD if X86_64
|
||||
select HAVE_ARCH_USERFAULTFD_WP if USERFAULTFD
|
||||
select HAVE_ARCH_USERFAULTFD_WP if X86_64 && USERFAULTFD
|
||||
select HAVE_ARCH_VMAP_STACK if X86_64
|
||||
select HAVE_ARCH_WITHIN_STACK_FRAMES
|
||||
select HAVE_ASM_MODVERSIONS
|
||||
|
@ -643,6 +643,7 @@ static const struct x86_cpu_id intel_cstates_match[] __initconst = {
|
||||
X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT_PLUS, &glm_cstates),
|
||||
X86_MATCH_INTEL_FAM6_MODEL(ATOM_TREMONT_D, &glm_cstates),
|
||||
X86_MATCH_INTEL_FAM6_MODEL(ATOM_TREMONT, &glm_cstates),
|
||||
X86_MATCH_INTEL_FAM6_MODEL(ATOM_TREMONT_L, &glm_cstates),
|
||||
|
||||
X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_L, &icl_cstates),
|
||||
X86_MATCH_INTEL_FAM6_MODEL(ICELAKE, &icl_cstates),
|
||||
|
@ -41,7 +41,7 @@ struct microcode_amd {
|
||||
unsigned int mpb[0];
|
||||
};
|
||||
|
||||
#define PATCH_MAX_SIZE PAGE_SIZE
|
||||
#define PATCH_MAX_SIZE (3 * PAGE_SIZE)
|
||||
|
||||
#ifdef CONFIG_MICROCODE_AMD
|
||||
extern void __init load_ucode_amd_bsp(unsigned int family);
|
||||
|
@ -13,64 +13,4 @@ struct mod_arch_specific {
|
||||
#endif
|
||||
};
|
||||
|
||||
#ifdef CONFIG_X86_64
|
||||
/* X86_64 does not define MODULE_PROC_FAMILY */
|
||||
#elif defined CONFIG_M486SX
|
||||
#define MODULE_PROC_FAMILY "486SX "
|
||||
#elif defined CONFIG_M486
|
||||
#define MODULE_PROC_FAMILY "486 "
|
||||
#elif defined CONFIG_M586
|
||||
#define MODULE_PROC_FAMILY "586 "
|
||||
#elif defined CONFIG_M586TSC
|
||||
#define MODULE_PROC_FAMILY "586TSC "
|
||||
#elif defined CONFIG_M586MMX
|
||||
#define MODULE_PROC_FAMILY "586MMX "
|
||||
#elif defined CONFIG_MCORE2
|
||||
#define MODULE_PROC_FAMILY "CORE2 "
|
||||
#elif defined CONFIG_MATOM
|
||||
#define MODULE_PROC_FAMILY "ATOM "
|
||||
#elif defined CONFIG_M686
|
||||
#define MODULE_PROC_FAMILY "686 "
|
||||
#elif defined CONFIG_MPENTIUMII
|
||||
#define MODULE_PROC_FAMILY "PENTIUMII "
|
||||
#elif defined CONFIG_MPENTIUMIII
|
||||
#define MODULE_PROC_FAMILY "PENTIUMIII "
|
||||
#elif defined CONFIG_MPENTIUMM
|
||||
#define MODULE_PROC_FAMILY "PENTIUMM "
|
||||
#elif defined CONFIG_MPENTIUM4
|
||||
#define MODULE_PROC_FAMILY "PENTIUM4 "
|
||||
#elif defined CONFIG_MK6
|
||||
#define MODULE_PROC_FAMILY "K6 "
|
||||
#elif defined CONFIG_MK7
|
||||
#define MODULE_PROC_FAMILY "K7 "
|
||||
#elif defined CONFIG_MK8
|
||||
#define MODULE_PROC_FAMILY "K8 "
|
||||
#elif defined CONFIG_MELAN
|
||||
#define MODULE_PROC_FAMILY "ELAN "
|
||||
#elif defined CONFIG_MCRUSOE
|
||||
#define MODULE_PROC_FAMILY "CRUSOE "
|
||||
#elif defined CONFIG_MEFFICEON
|
||||
#define MODULE_PROC_FAMILY "EFFICEON "
|
||||
#elif defined CONFIG_MWINCHIPC6
|
||||
#define MODULE_PROC_FAMILY "WINCHIPC6 "
|
||||
#elif defined CONFIG_MWINCHIP3D
|
||||
#define MODULE_PROC_FAMILY "WINCHIP3D "
|
||||
#elif defined CONFIG_MCYRIXIII
|
||||
#define MODULE_PROC_FAMILY "CYRIXIII "
|
||||
#elif defined CONFIG_MVIAC3_2
|
||||
#define MODULE_PROC_FAMILY "VIAC3-2 "
|
||||
#elif defined CONFIG_MVIAC7
|
||||
#define MODULE_PROC_FAMILY "VIAC7 "
|
||||
#elif defined CONFIG_MGEODEGX1
|
||||
#define MODULE_PROC_FAMILY "GEODEGX1 "
|
||||
#elif defined CONFIG_MGEODE_LX
|
||||
#define MODULE_PROC_FAMILY "GEODE "
|
||||
#else
|
||||
#error unknown processor family
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
# define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_X86_MODULE_H */
|
||||
|
@ -237,27 +237,6 @@ enum ssb_mitigation {
|
||||
extern char __indirect_thunk_start[];
|
||||
extern char __indirect_thunk_end[];
|
||||
|
||||
/*
|
||||
* On VMEXIT we must ensure that no RSB predictions learned in the guest
|
||||
* can be followed in the host, by overwriting the RSB completely. Both
|
||||
* retpoline and IBRS mitigations for Spectre v2 need this; only on future
|
||||
* CPUs with IBRS_ALL *might* it be avoided.
|
||||
*/
|
||||
static inline void vmexit_fill_RSB(void)
|
||||
{
|
||||
#ifdef CONFIG_RETPOLINE
|
||||
unsigned long loops;
|
||||
|
||||
asm volatile (ANNOTATE_NOSPEC_ALTERNATIVE
|
||||
ALTERNATIVE("jmp 910f",
|
||||
__stringify(__FILL_RETURN_BUFFER(%0, RSB_CLEAR_LOOPS, %1)),
|
||||
X86_FEATURE_RETPOLINE)
|
||||
"910:"
|
||||
: "=r" (loops), ASM_CALL_CONSTRAINT
|
||||
: : "memory" );
|
||||
#endif
|
||||
}
|
||||
|
||||
static __always_inline
|
||||
void alternative_msr_write(unsigned int msr, u64 val, unsigned int feature)
|
||||
{
|
||||
|
68
arch/x86/include/asm/vermagic.h
Normal file
68
arch/x86/include/asm/vermagic.h
Normal file
@ -0,0 +1,68 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
#ifndef _ASM_VERMAGIC_H
|
||||
#define _ASM_VERMAGIC_H
|
||||
|
||||
#ifdef CONFIG_X86_64
|
||||
/* X86_64 does not define MODULE_PROC_FAMILY */
|
||||
#elif defined CONFIG_M486SX
|
||||
#define MODULE_PROC_FAMILY "486SX "
|
||||
#elif defined CONFIG_M486
|
||||
#define MODULE_PROC_FAMILY "486 "
|
||||
#elif defined CONFIG_M586
|
||||
#define MODULE_PROC_FAMILY "586 "
|
||||
#elif defined CONFIG_M586TSC
|
||||
#define MODULE_PROC_FAMILY "586TSC "
|
||||
#elif defined CONFIG_M586MMX
|
||||
#define MODULE_PROC_FAMILY "586MMX "
|
||||
#elif defined CONFIG_MCORE2
|
||||
#define MODULE_PROC_FAMILY "CORE2 "
|
||||
#elif defined CONFIG_MATOM
|
||||
#define MODULE_PROC_FAMILY "ATOM "
|
||||
#elif defined CONFIG_M686
|
||||
#define MODULE_PROC_FAMILY "686 "
|
||||
#elif defined CONFIG_MPENTIUMII
|
||||
#define MODULE_PROC_FAMILY "PENTIUMII "
|
||||
#elif defined CONFIG_MPENTIUMIII
|
||||
#define MODULE_PROC_FAMILY "PENTIUMIII "
|
||||
#elif defined CONFIG_MPENTIUMM
|
||||
#define MODULE_PROC_FAMILY "PENTIUMM "
|
||||
#elif defined CONFIG_MPENTIUM4
|
||||
#define MODULE_PROC_FAMILY "PENTIUM4 "
|
||||
#elif defined CONFIG_MK6
|
||||
#define MODULE_PROC_FAMILY "K6 "
|
||||
#elif defined CONFIG_MK7
|
||||
#define MODULE_PROC_FAMILY "K7 "
|
||||
#elif defined CONFIG_MK8
|
||||
#define MODULE_PROC_FAMILY "K8 "
|
||||
#elif defined CONFIG_MELAN
|
||||
#define MODULE_PROC_FAMILY "ELAN "
|
||||
#elif defined CONFIG_MCRUSOE
|
||||
#define MODULE_PROC_FAMILY "CRUSOE "
|
||||
#elif defined CONFIG_MEFFICEON
|
||||
#define MODULE_PROC_FAMILY "EFFICEON "
|
||||
#elif defined CONFIG_MWINCHIPC6
|
||||
#define MODULE_PROC_FAMILY "WINCHIPC6 "
|
||||
#elif defined CONFIG_MWINCHIP3D
|
||||
#define MODULE_PROC_FAMILY "WINCHIP3D "
|
||||
#elif defined CONFIG_MCYRIXIII
|
||||
#define MODULE_PROC_FAMILY "CYRIXIII "
|
||||
#elif defined CONFIG_MVIAC3_2
|
||||
#define MODULE_PROC_FAMILY "VIAC3-2 "
|
||||
#elif defined CONFIG_MVIAC7
|
||||
#define MODULE_PROC_FAMILY "VIAC7 "
|
||||
#elif defined CONFIG_MGEODEGX1
|
||||
#define MODULE_PROC_FAMILY "GEODEGX1 "
|
||||
#elif defined CONFIG_MGEODE_LX
|
||||
#define MODULE_PROC_FAMILY "GEODE "
|
||||
#else
|
||||
#error unknown processor family
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
# define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY
|
||||
#else
|
||||
# define MODULE_ARCH_VERMAGIC ""
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_VERMAGIC_H */
|
@ -1119,35 +1119,53 @@ void switch_to_sld(unsigned long tifn)
|
||||
sld_update_msr(!(tifn & _TIF_SLD));
|
||||
}
|
||||
|
||||
#define SPLIT_LOCK_CPU(model) {X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY}
|
||||
|
||||
/*
|
||||
* The following processors have the split lock detection feature. But
|
||||
* since they don't have the IA32_CORE_CAPABILITIES MSR, the feature cannot
|
||||
* be enumerated. Enable it by family and model matching on these
|
||||
* processors.
|
||||
* Bits in the IA32_CORE_CAPABILITIES are not architectural, so they should
|
||||
* only be trusted if it is confirmed that a CPU model implements a
|
||||
* specific feature at a particular bit position.
|
||||
*
|
||||
* The possible driver data field values:
|
||||
*
|
||||
* - 0: CPU models that are known to have the per-core split-lock detection
|
||||
* feature even though they do not enumerate IA32_CORE_CAPABILITIES.
|
||||
*
|
||||
* - 1: CPU models which may enumerate IA32_CORE_CAPABILITIES and if so use
|
||||
* bit 5 to enumerate the per-core split-lock detection feature.
|
||||
*/
|
||||
static const struct x86_cpu_id split_lock_cpu_ids[] __initconst = {
|
||||
SPLIT_LOCK_CPU(INTEL_FAM6_ICELAKE_X),
|
||||
SPLIT_LOCK_CPU(INTEL_FAM6_ICELAKE_L),
|
||||
X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_X, 0),
|
||||
X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_L, 0),
|
||||
X86_MATCH_INTEL_FAM6_MODEL(ATOM_TREMONT, 1),
|
||||
X86_MATCH_INTEL_FAM6_MODEL(ATOM_TREMONT_D, 1),
|
||||
X86_MATCH_INTEL_FAM6_MODEL(ATOM_TREMONT_L, 1),
|
||||
{}
|
||||
};
|
||||
|
||||
void __init cpu_set_core_cap_bits(struct cpuinfo_x86 *c)
|
||||
{
|
||||
u64 ia32_core_caps = 0;
|
||||
const struct x86_cpu_id *m;
|
||||
u64 ia32_core_caps;
|
||||
|
||||
if (c->x86_vendor != X86_VENDOR_INTEL)
|
||||
if (boot_cpu_has(X86_FEATURE_HYPERVISOR))
|
||||
return;
|
||||
if (cpu_has(c, X86_FEATURE_CORE_CAPABILITIES)) {
|
||||
/* Enumerate features reported in IA32_CORE_CAPABILITIES MSR. */
|
||||
|
||||
m = x86_match_cpu(split_lock_cpu_ids);
|
||||
if (!m)
|
||||
return;
|
||||
|
||||
switch (m->driver_data) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
if (!cpu_has(c, X86_FEATURE_CORE_CAPABILITIES))
|
||||
return;
|
||||
rdmsrl(MSR_IA32_CORE_CAPS, ia32_core_caps);
|
||||
} else if (!boot_cpu_has(X86_FEATURE_HYPERVISOR)) {
|
||||
/* Enumerate split lock detection by family and model. */
|
||||
if (x86_match_cpu(split_lock_cpu_ids))
|
||||
ia32_core_caps |= MSR_IA32_CORE_CAPS_SPLIT_LOCK_DETECT;
|
||||
if (!(ia32_core_caps & MSR_IA32_CORE_CAPS_SPLIT_LOCK_DETECT))
|
||||
return;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
if (ia32_core_caps & MSR_IA32_CORE_CAPS_SPLIT_LOCK_DETECT)
|
||||
split_lock_setup();
|
||||
split_lock_setup();
|
||||
}
|
||||
|
@ -578,6 +578,8 @@ static void domain_add_cpu(int cpu, struct rdt_resource *r)
|
||||
d->id = id;
|
||||
cpumask_set_cpu(cpu, &d->cpu_mask);
|
||||
|
||||
rdt_domain_reconfigure_cdp(r);
|
||||
|
||||
if (r->alloc_capable && domain_setup_ctrlval(r, d)) {
|
||||
kfree(d);
|
||||
return;
|
||||
|
@ -601,5 +601,6 @@ bool has_busy_rmid(struct rdt_resource *r, struct rdt_domain *d);
|
||||
void __check_limbo(struct rdt_domain *d, bool force_free);
|
||||
bool cbm_validate_intel(char *buf, u32 *data, struct rdt_resource *r);
|
||||
bool cbm_validate_amd(char *buf, u32 *data, struct rdt_resource *r);
|
||||
void rdt_domain_reconfigure_cdp(struct rdt_resource *r);
|
||||
|
||||
#endif /* _ASM_X86_RESCTRL_INTERNAL_H */
|
||||
|
@ -1859,6 +1859,19 @@ static int set_cache_qos_cfg(int level, bool enable)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Restore the qos cfg state when a domain comes online */
|
||||
void rdt_domain_reconfigure_cdp(struct rdt_resource *r)
|
||||
{
|
||||
if (!r->alloc_capable)
|
||||
return;
|
||||
|
||||
if (r == &rdt_resources_all[RDT_RESOURCE_L2DATA])
|
||||
l2_qos_cfg_update(&r->alloc_enabled);
|
||||
|
||||
if (r == &rdt_resources_all[RDT_RESOURCE_L3DATA])
|
||||
l3_qos_cfg_update(&r->alloc_enabled);
|
||||
}
|
||||
|
||||
/*
|
||||
* Enable or disable the MBA software controller
|
||||
* which helps user specify bandwidth in MBps.
|
||||
@ -3072,7 +3085,8 @@ static int rdtgroup_rmdir(struct kernfs_node *kn)
|
||||
* If the rdtgroup is a mon group and parent directory
|
||||
* is a valid "mon_groups" directory, remove the mon group.
|
||||
*/
|
||||
if (rdtgrp->type == RDTCTRL_GROUP && parent_kn == rdtgroup_default.kn) {
|
||||
if (rdtgrp->type == RDTCTRL_GROUP && parent_kn == rdtgroup_default.kn &&
|
||||
rdtgrp != &rdtgroup_default) {
|
||||
if (rdtgrp->mode == RDT_MODE_PSEUDO_LOCKSETUP ||
|
||||
rdtgrp->mode == RDT_MODE_PSEUDO_LOCKED) {
|
||||
ret = rdtgroup_ctrl_remove(kn, rdtgrp);
|
||||
|
@ -147,7 +147,7 @@ static inline void smpboot_restore_warm_reset_vector(void)
|
||||
*((volatile u32 *)phys_to_virt(TRAMPOLINE_PHYS_LOW)) = 0;
|
||||
}
|
||||
|
||||
static void init_freq_invariance(void);
|
||||
static void init_freq_invariance(bool secondary);
|
||||
|
||||
/*
|
||||
* Report back to the Boot Processor during boot time or to the caller processor
|
||||
@ -185,7 +185,7 @@ static void smp_callin(void)
|
||||
*/
|
||||
set_cpu_sibling_map(raw_smp_processor_id());
|
||||
|
||||
init_freq_invariance();
|
||||
init_freq_invariance(true);
|
||||
|
||||
/*
|
||||
* Get our bogomips.
|
||||
@ -1341,7 +1341,7 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus)
|
||||
set_sched_topology(x86_topology);
|
||||
|
||||
set_cpu_sibling_map(0);
|
||||
init_freq_invariance();
|
||||
init_freq_invariance(false);
|
||||
smp_sanity_check();
|
||||
|
||||
switch (apic_intr_mode) {
|
||||
@ -1877,9 +1877,6 @@ static bool knl_set_max_freq_ratio(u64 *base_freq, u64 *turbo_freq,
|
||||
int err, i;
|
||||
u64 msr;
|
||||
|
||||
if (!x86_match_cpu(has_knl_turbo_ratio_limits))
|
||||
return false;
|
||||
|
||||
err = rdmsrl_safe(MSR_PLATFORM_INFO, base_freq);
|
||||
if (err)
|
||||
return false;
|
||||
@ -1945,18 +1942,23 @@ static bool skx_set_max_freq_ratio(u64 *base_freq, u64 *turbo_freq, int size)
|
||||
|
||||
static bool core_set_max_freq_ratio(u64 *base_freq, u64 *turbo_freq)
|
||||
{
|
||||
u64 msr;
|
||||
int err;
|
||||
|
||||
err = rdmsrl_safe(MSR_PLATFORM_INFO, base_freq);
|
||||
if (err)
|
||||
return false;
|
||||
|
||||
err = rdmsrl_safe(MSR_TURBO_RATIO_LIMIT, turbo_freq);
|
||||
err = rdmsrl_safe(MSR_TURBO_RATIO_LIMIT, &msr);
|
||||
if (err)
|
||||
return false;
|
||||
|
||||
*base_freq = (*base_freq >> 8) & 0xFF; /* max P state */
|
||||
*turbo_freq = (*turbo_freq >> 24) & 0xFF; /* 4C turbo */
|
||||
*base_freq = (*base_freq >> 8) & 0xFF; /* max P state */
|
||||
*turbo_freq = (msr >> 24) & 0xFF; /* 4C turbo */
|
||||
|
||||
/* The CPU may have less than 4 cores */
|
||||
if (!*turbo_freq)
|
||||
*turbo_freq = msr & 0xFF; /* 1C turbo */
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -1972,7 +1974,8 @@ static bool intel_set_max_freq_ratio(void)
|
||||
skx_set_max_freq_ratio(&base_freq, &turbo_freq, 1))
|
||||
goto out;
|
||||
|
||||
if (knl_set_max_freq_ratio(&base_freq, &turbo_freq, 1))
|
||||
if (x86_match_cpu(has_knl_turbo_ratio_limits) &&
|
||||
knl_set_max_freq_ratio(&base_freq, &turbo_freq, 1))
|
||||
goto out;
|
||||
|
||||
if (x86_match_cpu(has_skx_turbo_ratio_limits) &&
|
||||
@ -1985,13 +1988,22 @@ static bool intel_set_max_freq_ratio(void)
|
||||
return false;
|
||||
|
||||
out:
|
||||
/*
|
||||
* Some hypervisors advertise X86_FEATURE_APERFMPERF
|
||||
* but then fill all MSR's with zeroes.
|
||||
*/
|
||||
if (!base_freq) {
|
||||
pr_debug("Couldn't determine cpu base frequency, necessary for scale-invariant accounting.\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
arch_turbo_freq_ratio = div_u64(turbo_freq * SCHED_CAPACITY_SCALE,
|
||||
base_freq);
|
||||
arch_set_max_freq_ratio(turbo_disabled());
|
||||
return true;
|
||||
}
|
||||
|
||||
static void init_counter_refs(void *arg)
|
||||
static void init_counter_refs(void)
|
||||
{
|
||||
u64 aperf, mperf;
|
||||
|
||||
@ -2002,18 +2014,25 @@ static void init_counter_refs(void *arg)
|
||||
this_cpu_write(arch_prev_mperf, mperf);
|
||||
}
|
||||
|
||||
static void init_freq_invariance(void)
|
||||
static void init_freq_invariance(bool secondary)
|
||||
{
|
||||
bool ret = false;
|
||||
|
||||
if (smp_processor_id() != 0 || !boot_cpu_has(X86_FEATURE_APERFMPERF))
|
||||
if (!boot_cpu_has(X86_FEATURE_APERFMPERF))
|
||||
return;
|
||||
|
||||
if (secondary) {
|
||||
if (static_branch_likely(&arch_scale_freq_key)) {
|
||||
init_counter_refs();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL)
|
||||
ret = intel_set_max_freq_ratio();
|
||||
|
||||
if (ret) {
|
||||
on_each_cpu(init_counter_refs, NULL, 1);
|
||||
init_counter_refs();
|
||||
static_branch_enable(&arch_scale_freq_key);
|
||||
} else {
|
||||
pr_debug("Couldn't determine max cpu frequency, necessary for scale-invariant accounting.\n");
|
||||
|
@ -81,7 +81,7 @@
|
||||
#define UMIP_INST_SLDT 3 /* 0F 00 /0 */
|
||||
#define UMIP_INST_STR 4 /* 0F 00 /1 */
|
||||
|
||||
const char * const umip_insns[5] = {
|
||||
static const char * const umip_insns[5] = {
|
||||
[UMIP_INST_SGDT] = "SGDT",
|
||||
[UMIP_INST_SIDT] = "SIDT",
|
||||
[UMIP_INST_SMSW] = "SMSW",
|
||||
|
@ -3,6 +3,10 @@
|
||||
ccflags-y += -Iarch/x86/kvm
|
||||
ccflags-$(CONFIG_KVM_WERROR) += -Werror
|
||||
|
||||
ifeq ($(CONFIG_FRAME_POINTER),y)
|
||||
OBJECT_FILES_NON_STANDARD_vmenter.o := y
|
||||
endif
|
||||
|
||||
KVM := ../../../virt/kvm
|
||||
|
||||
kvm-y += $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o \
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/highmem.h>
|
||||
#include <linux/psp-sev.h>
|
||||
#include <linux/pagemap.h>
|
||||
#include <linux/swap.h>
|
||||
|
||||
#include "x86.h"
|
||||
@ -1117,7 +1118,7 @@ int __init sev_hardware_setup(void)
|
||||
/* Maximum number of encrypted guests supported simultaneously */
|
||||
max_sev_asid = cpuid_ecx(0x8000001F);
|
||||
|
||||
if (!max_sev_asid)
|
||||
if (!svm_sev_enabled())
|
||||
return 1;
|
||||
|
||||
/* Minimum ASID value that should be used for SEV guest */
|
||||
@ -1156,6 +1157,9 @@ err:
|
||||
|
||||
void sev_hardware_teardown(void)
|
||||
{
|
||||
if (!svm_sev_enabled())
|
||||
return;
|
||||
|
||||
bitmap_free(sev_asid_bitmap);
|
||||
bitmap_free(sev_reclaim_asid_bitmap);
|
||||
|
||||
|
@ -3276,7 +3276,7 @@ static void svm_cancel_injection(struct kvm_vcpu *vcpu)
|
||||
svm_complete_interrupts(svm);
|
||||
}
|
||||
|
||||
bool __svm_vcpu_run(unsigned long vmcb_pa, unsigned long *regs);
|
||||
void __svm_vcpu_run(unsigned long vmcb_pa, unsigned long *regs);
|
||||
|
||||
static void svm_vcpu_run(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
@ -3330,13 +3330,8 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
|
||||
*/
|
||||
x86_spec_ctrl_set_guest(svm->spec_ctrl, svm->virt_spec_ctrl);
|
||||
|
||||
local_irq_enable();
|
||||
|
||||
__svm_vcpu_run(svm->vmcb_pa, (unsigned long *)&svm->vcpu.arch.regs);
|
||||
|
||||
/* Eliminate branch target predictions from guest mode */
|
||||
vmexit_fill_RSB();
|
||||
|
||||
#ifdef CONFIG_X86_64
|
||||
wrmsrl(MSR_GS_BASE, svm->host.gs_base);
|
||||
#else
|
||||
@ -3366,8 +3361,6 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
|
||||
|
||||
reload_tss(vcpu);
|
||||
|
||||
local_irq_disable();
|
||||
|
||||
x86_spec_ctrl_restore_host(svm->spec_ctrl, svm->virt_spec_ctrl);
|
||||
|
||||
vcpu->arch.cr2 = svm->vmcb->save.cr2;
|
||||
@ -3411,7 +3404,6 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
|
||||
|
||||
mark_all_clean(svm->vmcb);
|
||||
}
|
||||
STACK_FRAME_NON_STANDARD(svm_vcpu_run);
|
||||
|
||||
static void svm_load_mmu_pgd(struct kvm_vcpu *vcpu, unsigned long root)
|
||||
{
|
||||
|
@ -3,6 +3,7 @@
|
||||
#include <asm/asm.h>
|
||||
#include <asm/bitsperlong.h>
|
||||
#include <asm/kvm_vcpu_regs.h>
|
||||
#include <asm/nospec-branch.h>
|
||||
|
||||
#define WORD_SIZE (BITS_PER_LONG / 8)
|
||||
|
||||
@ -35,7 +36,6 @@
|
||||
*/
|
||||
SYM_FUNC_START(__svm_vcpu_run)
|
||||
push %_ASM_BP
|
||||
mov %_ASM_SP, %_ASM_BP
|
||||
#ifdef CONFIG_X86_64
|
||||
push %r15
|
||||
push %r14
|
||||
@ -78,6 +78,7 @@ SYM_FUNC_START(__svm_vcpu_run)
|
||||
pop %_ASM_AX
|
||||
|
||||
/* Enter guest mode */
|
||||
sti
|
||||
1: vmload %_ASM_AX
|
||||
jmp 3f
|
||||
2: cmpb $0, kvm_rebooting
|
||||
@ -99,6 +100,13 @@ SYM_FUNC_START(__svm_vcpu_run)
|
||||
ud2
|
||||
_ASM_EXTABLE(5b, 6b)
|
||||
7:
|
||||
cli
|
||||
|
||||
#ifdef CONFIG_RETPOLINE
|
||||
/* IMPORTANT: Stuff the RSB immediately after VM-Exit, before RET! */
|
||||
FILL_RETURN_BUFFER %_ASM_AX, RSB_CLEAR_LOOPS, X86_FEATURE_RETPOLINE
|
||||
#endif
|
||||
|
||||
/* "POP" @regs to RAX. */
|
||||
pop %_ASM_AX
|
||||
|
||||
|
@ -5533,8 +5533,25 @@ static bool nested_vmx_exit_handled_vmcs_access(struct kvm_vcpu *vcpu,
|
||||
return 1 & (b >> (field & 7));
|
||||
}
|
||||
|
||||
static bool nested_vmx_exit_handled_mtf(struct vmcs12 *vmcs12)
|
||||
{
|
||||
u32 entry_intr_info = vmcs12->vm_entry_intr_info_field;
|
||||
|
||||
if (nested_cpu_has_mtf(vmcs12))
|
||||
return true;
|
||||
|
||||
/*
|
||||
* An MTF VM-exit may be injected into the guest by setting the
|
||||
* interruption-type to 7 (other event) and the vector field to 0. Such
|
||||
* is the case regardless of the 'monitor trap flag' VM-execution
|
||||
* control.
|
||||
*/
|
||||
return entry_intr_info == (INTR_INFO_VALID_MASK
|
||||
| INTR_TYPE_OTHER_EVENT);
|
||||
}
|
||||
|
||||
/*
|
||||
* Return 1 if we should exit from L2 to L1 to handle an exit, or 0 if we
|
||||
* Return true if we should exit from L2 to L1 to handle an exit, or false if we
|
||||
* should handle it ourselves in L0 (and then continue L2). Only call this
|
||||
* when in is_guest_mode (L2).
|
||||
*/
|
||||
@ -5633,7 +5650,7 @@ bool nested_vmx_exit_reflected(struct kvm_vcpu *vcpu, u32 exit_reason)
|
||||
case EXIT_REASON_MWAIT_INSTRUCTION:
|
||||
return nested_cpu_has(vmcs12, CPU_BASED_MWAIT_EXITING);
|
||||
case EXIT_REASON_MONITOR_TRAP_FLAG:
|
||||
return nested_cpu_has_mtf(vmcs12);
|
||||
return nested_vmx_exit_handled_mtf(vmcs12);
|
||||
case EXIT_REASON_MONITOR_INSTRUCTION:
|
||||
return nested_cpu_has(vmcs12, CPU_BASED_MONITOR_EXITING);
|
||||
case EXIT_REASON_PAUSE_INSTRUCTION:
|
||||
|
@ -4572,7 +4572,7 @@ static int handle_rmode_exception(struct kvm_vcpu *vcpu,
|
||||
*/
|
||||
static void kvm_machine_check(void)
|
||||
{
|
||||
#if defined(CONFIG_X86_MCE) && defined(CONFIG_X86_64)
|
||||
#if defined(CONFIG_X86_MCE)
|
||||
struct pt_regs regs = {
|
||||
.cs = 3, /* Fake ring 3 no matter what the guest ran on */
|
||||
.flags = X86_EFLAGS_IF,
|
||||
|
@ -3060,6 +3060,17 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
|
||||
case MSR_IA32_PERF_CTL:
|
||||
case MSR_AMD64_DC_CFG:
|
||||
case MSR_F15H_EX_CFG:
|
||||
/*
|
||||
* Intel Sandy Bridge CPUs must support the RAPL (running average power
|
||||
* limit) MSRs. Just return 0, as we do not want to expose the host
|
||||
* data here. Do not conditionalize this on CPUID, as KVM does not do
|
||||
* so for existing CPU-specific MSRs.
|
||||
*/
|
||||
case MSR_RAPL_POWER_UNIT:
|
||||
case MSR_PP0_ENERGY_STATUS: /* Power plane 0 (core) */
|
||||
case MSR_PP1_ENERGY_STATUS: /* Power plane 1 (graphics uncore) */
|
||||
case MSR_PKG_ENERGY_STATUS: /* Total package */
|
||||
case MSR_DRAM_ENERGY_STATUS: /* DRAM controller */
|
||||
msr_info->data = 0;
|
||||
break;
|
||||
case MSR_F15H_PERF_CTL0 ... MSR_F15H_PERF_CTR5:
|
||||
@ -5049,10 +5060,13 @@ set_identity_unlock:
|
||||
r = -EFAULT;
|
||||
if (copy_from_user(&u.ps, argp, sizeof(u.ps)))
|
||||
goto out;
|
||||
mutex_lock(&kvm->lock);
|
||||
r = -ENXIO;
|
||||
if (!kvm->arch.vpit)
|
||||
goto out;
|
||||
goto set_pit_out;
|
||||
r = kvm_vm_ioctl_set_pit(kvm, &u.ps);
|
||||
set_pit_out:
|
||||
mutex_unlock(&kvm->lock);
|
||||
break;
|
||||
}
|
||||
case KVM_GET_PIT2: {
|
||||
@ -5072,10 +5086,13 @@ set_identity_unlock:
|
||||
r = -EFAULT;
|
||||
if (copy_from_user(&u.ps2, argp, sizeof(u.ps2)))
|
||||
goto out;
|
||||
mutex_lock(&kvm->lock);
|
||||
r = -ENXIO;
|
||||
if (!kvm->arch.vpit)
|
||||
goto out;
|
||||
goto set_pit2_out;
|
||||
r = kvm_vm_ioctl_set_pit2(kvm, &u.ps2);
|
||||
set_pit2_out:
|
||||
mutex_unlock(&kvm->lock);
|
||||
break;
|
||||
}
|
||||
case KVM_REINJECT_CONTROL: {
|
||||
|
@ -158,6 +158,19 @@ static bool is_ereg(u32 reg)
|
||||
BIT(BPF_REG_AX));
|
||||
}
|
||||
|
||||
/*
|
||||
* is_ereg_8l() == true if BPF register 'reg' is mapped to access x86-64
|
||||
* lower 8-bit registers dil,sil,bpl,spl,r8b..r15b, which need extra byte
|
||||
* of encoding. al,cl,dl,bl have simpler encoding.
|
||||
*/
|
||||
static bool is_ereg_8l(u32 reg)
|
||||
{
|
||||
return is_ereg(reg) ||
|
||||
(1 << reg) & (BIT(BPF_REG_1) |
|
||||
BIT(BPF_REG_2) |
|
||||
BIT(BPF_REG_FP));
|
||||
}
|
||||
|
||||
static bool is_axreg(u32 reg)
|
||||
{
|
||||
return reg == BPF_REG_0;
|
||||
@ -598,9 +611,8 @@ static void emit_stx(u8 **pprog, u32 size, u32 dst_reg, u32 src_reg, int off)
|
||||
switch (size) {
|
||||
case BPF_B:
|
||||
/* Emit 'mov byte ptr [rax + off], al' */
|
||||
if (is_ereg(dst_reg) || is_ereg(src_reg) ||
|
||||
/* We have to add extra byte for x86 SIL, DIL regs */
|
||||
src_reg == BPF_REG_1 || src_reg == BPF_REG_2)
|
||||
if (is_ereg(dst_reg) || is_ereg_8l(src_reg))
|
||||
/* Add extra byte for eregs or SIL,DIL,BPL in src_reg */
|
||||
EMIT2(add_2mod(0x40, dst_reg, src_reg), 0x88);
|
||||
else
|
||||
EMIT1(0x88);
|
||||
|
@ -1847,14 +1847,16 @@ static int do_jit(struct bpf_prog *bpf_prog, int *addrs, u8 *image,
|
||||
case BPF_B:
|
||||
case BPF_H:
|
||||
case BPF_W:
|
||||
if (!bpf_prog->aux->verifier_zext)
|
||||
if (bpf_prog->aux->verifier_zext)
|
||||
break;
|
||||
if (dstk) {
|
||||
EMIT3(0xC7, add_1reg(0x40, IA32_EBP),
|
||||
STACK_VAR(dst_hi));
|
||||
EMIT(0x0, 4);
|
||||
} else {
|
||||
EMIT3(0xC7, add_1reg(0xC0, dst_hi), 0);
|
||||
/* xor dst_hi,dst_hi */
|
||||
EMIT2(0x33,
|
||||
add_2reg(0xC0, dst_hi, dst_hi));
|
||||
}
|
||||
break;
|
||||
case BPF_DW:
|
||||
@ -2013,8 +2015,8 @@ static int do_jit(struct bpf_prog *bpf_prog, int *addrs, u8 *image,
|
||||
case BPF_JMP | BPF_JSET | BPF_X:
|
||||
case BPF_JMP32 | BPF_JSET | BPF_X: {
|
||||
bool is_jmp64 = BPF_CLASS(insn->code) == BPF_JMP;
|
||||
u8 dreg_lo = dstk ? IA32_EAX : dst_lo;
|
||||
u8 dreg_hi = dstk ? IA32_EDX : dst_hi;
|
||||
u8 dreg_lo = IA32_EAX;
|
||||
u8 dreg_hi = IA32_EDX;
|
||||
u8 sreg_lo = sstk ? IA32_ECX : src_lo;
|
||||
u8 sreg_hi = sstk ? IA32_EBX : src_hi;
|
||||
|
||||
@ -2026,6 +2028,13 @@ static int do_jit(struct bpf_prog *bpf_prog, int *addrs, u8 *image,
|
||||
add_2reg(0x40, IA32_EBP,
|
||||
IA32_EDX),
|
||||
STACK_VAR(dst_hi));
|
||||
} else {
|
||||
/* mov dreg_lo,dst_lo */
|
||||
EMIT2(0x89, add_2reg(0xC0, dreg_lo, dst_lo));
|
||||
if (is_jmp64)
|
||||
/* mov dreg_hi,dst_hi */
|
||||
EMIT2(0x89,
|
||||
add_2reg(0xC0, dreg_hi, dst_hi));
|
||||
}
|
||||
|
||||
if (sstk) {
|
||||
@ -2050,8 +2059,8 @@ static int do_jit(struct bpf_prog *bpf_prog, int *addrs, u8 *image,
|
||||
case BPF_JMP | BPF_JSET | BPF_K:
|
||||
case BPF_JMP32 | BPF_JSET | BPF_K: {
|
||||
bool is_jmp64 = BPF_CLASS(insn->code) == BPF_JMP;
|
||||
u8 dreg_lo = dstk ? IA32_EAX : dst_lo;
|
||||
u8 dreg_hi = dstk ? IA32_EDX : dst_hi;
|
||||
u8 dreg_lo = IA32_EAX;
|
||||
u8 dreg_hi = IA32_EDX;
|
||||
u8 sreg_lo = IA32_ECX;
|
||||
u8 sreg_hi = IA32_EBX;
|
||||
u32 hi;
|
||||
@ -2064,6 +2073,13 @@ static int do_jit(struct bpf_prog *bpf_prog, int *addrs, u8 *image,
|
||||
add_2reg(0x40, IA32_EBP,
|
||||
IA32_EDX),
|
||||
STACK_VAR(dst_hi));
|
||||
} else {
|
||||
/* mov dreg_lo,dst_lo */
|
||||
EMIT2(0x89, add_2reg(0xC0, dreg_lo, dst_lo));
|
||||
if (is_jmp64)
|
||||
/* mov dreg_hi,dst_hi */
|
||||
EMIT2(0x89,
|
||||
add_2reg(0xC0, dreg_hi, dst_hi));
|
||||
}
|
||||
|
||||
/* mov ecx,imm32 */
|
||||
|
@ -1,8 +1,4 @@
|
||||
/*
|
||||
* include/asm-xtensa/module.h
|
||||
*
|
||||
* This file contains the module code specific to the Xtensa architecture.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
@ -10,11 +6,12 @@
|
||||
* Copyright (C) 2001 - 2005 Tensilica Inc.
|
||||
*/
|
||||
|
||||
#ifndef _XTENSA_MODULE_H
|
||||
#define _XTENSA_MODULE_H
|
||||
#ifndef _ASM_VERMAGIC_H
|
||||
#define _ASM_VERMAGIC_H
|
||||
|
||||
#include <linux/stringify.h>
|
||||
#include <variant/core.h>
|
||||
|
||||
#define MODULE_ARCH_VERMAGIC "xtensa-" __stringify(XCHAL_CORE_ID) " "
|
||||
|
||||
#include <asm-generic/module.h>
|
||||
|
||||
#endif /* _XTENSA_MODULE_H */
|
||||
#endif /* _ASM_VERMAGIC_H */
|
@ -1591,7 +1591,7 @@ skip_surplus_transfers:
|
||||
vrate_min, vrate_max);
|
||||
}
|
||||
|
||||
trace_iocost_ioc_vrate_adj(ioc, vrate, &missed_ppm, rq_wait_pct,
|
||||
trace_iocost_ioc_vrate_adj(ioc, vrate, missed_ppm, rq_wait_pct,
|
||||
nr_lagging, nr_shortages,
|
||||
nr_surpluses);
|
||||
|
||||
@ -1600,7 +1600,7 @@ skip_surplus_transfers:
|
||||
ioc->period_us * vrate * INUSE_MARGIN_PCT, 100);
|
||||
} else if (ioc->busy_level != prev_busy_level || nr_lagging) {
|
||||
trace_iocost_ioc_vrate_adj(ioc, atomic64_read(&ioc->vtime_rate),
|
||||
&missed_ppm, rq_wait_pct, nr_lagging,
|
||||
missed_ppm, rq_wait_pct, nr_lagging,
|
||||
nr_shortages, nr_surpluses);
|
||||
}
|
||||
|
||||
|
@ -1222,8 +1222,10 @@ bool blk_mq_dispatch_rq_list(struct request_queue *q, struct list_head *list,
|
||||
rq = list_first_entry(list, struct request, queuelist);
|
||||
|
||||
hctx = rq->mq_hctx;
|
||||
if (!got_budget && !blk_mq_get_dispatch_budget(hctx))
|
||||
if (!got_budget && !blk_mq_get_dispatch_budget(hctx)) {
|
||||
blk_mq_put_driver_tag(rq);
|
||||
break;
|
||||
}
|
||||
|
||||
if (!blk_mq_get_driver_tag(rq)) {
|
||||
/*
|
||||
|
@ -313,7 +313,7 @@ static void scale_up(struct rq_wb *rwb)
|
||||
calc_wb_limits(rwb);
|
||||
rwb->unknown_cnt = 0;
|
||||
rwb_wake_all(rwb);
|
||||
rwb_trace_step(rwb, "scale up");
|
||||
rwb_trace_step(rwb, tracepoint_string("scale up"));
|
||||
}
|
||||
|
||||
static void scale_down(struct rq_wb *rwb, bool hard_throttle)
|
||||
@ -322,7 +322,7 @@ static void scale_down(struct rq_wb *rwb, bool hard_throttle)
|
||||
return;
|
||||
calc_wb_limits(rwb);
|
||||
rwb->unknown_cnt = 0;
|
||||
rwb_trace_step(rwb, "scale down");
|
||||
rwb_trace_step(rwb, tracepoint_string("scale down"));
|
||||
}
|
||||
|
||||
static void rwb_arm_timer(struct rq_wb *rwb)
|
||||
|
@ -87,18 +87,6 @@ static const struct dmi_system_id dmi_lid_quirks[] = {
|
||||
},
|
||||
.driver_data = (void *)(long)ACPI_BUTTON_LID_INIT_DISABLED,
|
||||
},
|
||||
{
|
||||
/*
|
||||
* Asus T200TA, _LID keeps reporting closed after every second
|
||||
* openening of the lid. Causing immediate re-suspend after
|
||||
* opening every other open. Using LID_INIT_OPEN fixes this.
|
||||
*/
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "T200TA"),
|
||||
},
|
||||
.driver_data = (void *)(long)ACPI_BUTTON_LID_INIT_OPEN,
|
||||
},
|
||||
{
|
||||
/* GP-electronic T701, _LID method points to a floating GPIO */
|
||||
.matches = {
|
||||
|
@ -322,10 +322,10 @@ static int acpi_pci_link_set(struct acpi_pci_link *link, int irq)
|
||||
resource->res.data.extended_irq.polarity =
|
||||
link->irq.polarity;
|
||||
if (link->irq.triggering == ACPI_EDGE_SENSITIVE)
|
||||
resource->res.data.irq.shareable =
|
||||
resource->res.data.extended_irq.shareable =
|
||||
ACPI_EXCLUSIVE;
|
||||
else
|
||||
resource->res.data.irq.shareable = ACPI_SHARED;
|
||||
resource->res.data.extended_irq.shareable = ACPI_SHARED;
|
||||
resource->res.data.extended_irq.interrupt_count = 1;
|
||||
resource->res.data.extended_irq.interrupts[0] = irq;
|
||||
/* ignore resource_source, it's optional */
|
||||
|
@ -410,6 +410,7 @@ static const struct pci_device_id ahci_pci_tbl[] = {
|
||||
{ PCI_VDEVICE(INTEL, 0x22a3), board_ahci_mobile }, /* Cherry Tr. AHCI */
|
||||
{ PCI_VDEVICE(INTEL, 0x5ae3), board_ahci_mobile }, /* ApolloLake AHCI */
|
||||
{ PCI_VDEVICE(INTEL, 0x34d3), board_ahci_mobile }, /* Ice Lake LP AHCI */
|
||||
{ PCI_VDEVICE(INTEL, 0x02d3), board_ahci_mobile }, /* Comet Lake PCH-U AHCI */
|
||||
{ PCI_VDEVICE(INTEL, 0x02d7), board_ahci_mobile }, /* Comet Lake PCH RAID */
|
||||
|
||||
/* JMicron 360/1/3/5/6, match class to avoid IDE function */
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user