forked from Minki/linux
Merge 5.11-rc7 into usb-next
We need the USB fixes in here as well. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
commit
d8c849037d
@ -122,6 +122,7 @@ ForEachMacros:
|
||||
- 'drm_for_each_bridge_in_chain'
|
||||
- 'drm_for_each_connector_iter'
|
||||
- 'drm_for_each_crtc'
|
||||
- 'drm_for_each_crtc_reverse'
|
||||
- 'drm_for_each_encoder'
|
||||
- 'drm_for_each_encoder_mask'
|
||||
- 'drm_for_each_fb'
|
||||
@ -203,14 +204,13 @@ ForEachMacros:
|
||||
- 'for_each_matching_node'
|
||||
- 'for_each_matching_node_and_match'
|
||||
- 'for_each_member'
|
||||
- 'for_each_mem_region'
|
||||
- 'for_each_memblock_type'
|
||||
- 'for_each_memcg_cache_index'
|
||||
- 'for_each_mem_pfn_range'
|
||||
- '__for_each_mem_range'
|
||||
- 'for_each_mem_range'
|
||||
- '__for_each_mem_range_rev'
|
||||
- 'for_each_mem_range_rev'
|
||||
- 'for_each_mem_region'
|
||||
- 'for_each_migratetype_order'
|
||||
- 'for_each_msi_entry'
|
||||
- 'for_each_msi_entry_safe'
|
||||
@ -276,10 +276,8 @@ ForEachMacros:
|
||||
- 'for_each_reserved_mem_range'
|
||||
- 'for_each_reserved_mem_region'
|
||||
- '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'
|
||||
@ -298,6 +296,7 @@ ForEachMacros:
|
||||
- '__for_each_thread'
|
||||
- 'for_each_thread'
|
||||
- 'for_each_unicast_dest_pgid'
|
||||
- 'for_each_vsi'
|
||||
- 'for_each_wakeup_source'
|
||||
- 'for_each_zone'
|
||||
- 'for_each_zone_zonelist'
|
||||
@ -330,6 +329,7 @@ ForEachMacros:
|
||||
- 'hlist_for_each_entry_rcu_bh'
|
||||
- 'hlist_for_each_entry_rcu_notrace'
|
||||
- 'hlist_for_each_entry_safe'
|
||||
- 'hlist_for_each_entry_srcu'
|
||||
- '__hlist_for_each_rcu'
|
||||
- 'hlist_for_each_safe'
|
||||
- 'hlist_nulls_for_each_entry'
|
||||
@ -378,6 +378,7 @@ ForEachMacros:
|
||||
- 'list_for_each_entry_safe_continue'
|
||||
- 'list_for_each_entry_safe_from'
|
||||
- 'list_for_each_entry_safe_reverse'
|
||||
- 'list_for_each_entry_srcu'
|
||||
- 'list_for_each_prev'
|
||||
- 'list_for_each_prev_safe'
|
||||
- 'list_for_each_safe'
|
||||
@ -411,6 +412,8 @@ ForEachMacros:
|
||||
- 'of_property_for_each_string'
|
||||
- 'of_property_for_each_u32'
|
||||
- 'pci_bus_for_each_resource'
|
||||
- 'pcl_for_each_chunk'
|
||||
- 'pcl_for_each_segment'
|
||||
- 'pcm_for_each_format'
|
||||
- 'ping_portaddr_for_each_entry'
|
||||
- 'plist_for_each'
|
||||
|
10
.mailmap
10
.mailmap
@ -9,9 +9,6 @@
|
||||
#
|
||||
# Please keep this list dictionary sorted.
|
||||
#
|
||||
# This comment is parsed by git-shortlog:
|
||||
# repo-abbrev: /pub/scm/linux/kernel/git/
|
||||
#
|
||||
Aaron Durbin <adurbin@google.com>
|
||||
Adam Oldham <oldhamca@gmail.com>
|
||||
Adam Radford <aradford@gmail.com>
|
||||
@ -182,6 +179,8 @@ Kees Cook <keescook@chromium.org> <kees.cook@canonical.com>
|
||||
Kees Cook <keescook@chromium.org> <keescook@google.com>
|
||||
Kees Cook <keescook@chromium.org> <kees@outflux.net>
|
||||
Kees Cook <keescook@chromium.org> <kees@ubuntu.com>
|
||||
Keith Busch <kbusch@kernel.org> <keith.busch@intel.com>
|
||||
Keith Busch <kbusch@kernel.org> <keith.busch@linux.intel.com>
|
||||
Kenneth W Chen <kenneth.w.chen@intel.com>
|
||||
Konstantin Khlebnikov <koct9i@gmail.com> <khlebnikov@yandex-team.ru>
|
||||
Konstantin Khlebnikov <koct9i@gmail.com> <k.khlebnikov@samsung.com>
|
||||
@ -202,6 +201,8 @@ Li Yang <leoyang.li@nxp.com> <leoli@freescale.com>
|
||||
Li Yang <leoyang.li@nxp.com> <leo@zh-kernel.org>
|
||||
Lukasz Luba <lukasz.luba@arm.com> <l.luba@partner.samsung.com>
|
||||
Maciej W. Rozycki <macro@mips.com> <macro@imgtec.com>
|
||||
Manivannan Sadhasivam <mani@kernel.org> <manivannanece23@gmail.com>
|
||||
Manivannan Sadhasivam <mani@kernel.org> <manivannan.sadhasivam@linaro.org>
|
||||
Marcin Nowakowski <marcin.nowakowski@mips.com> <marcin.nowakowski@imgtec.com>
|
||||
Marc Zyngier <maz@kernel.org> <marc.zyngier@arm.com>
|
||||
Mark Brown <broonie@sirena.org.uk>
|
||||
@ -247,6 +248,7 @@ Morten Welinder <welinder@anemone.rentec.com>
|
||||
Morten Welinder <welinder@darter.rentec.com>
|
||||
Morten Welinder <welinder@troll.com>
|
||||
Mythri P K <mythripk@ti.com>
|
||||
Nathan Chancellor <nathan@kernel.org> <natechancellor@gmail.com>
|
||||
Nguyen Anh Quynh <aquynh@gmail.com>
|
||||
Nicolas Ferre <nicolas.ferre@microchip.com> <nicolas.ferre@atmel.com>
|
||||
Nicolas Pitre <nico@fluxnic.net> <nicolas.pitre@linaro.org>
|
||||
@ -337,6 +339,8 @@ Vinod Koul <vkoul@kernel.org> <vkoul@infradead.org>
|
||||
Viresh Kumar <vireshk@kernel.org> <viresh.kumar2@arm.com>
|
||||
Viresh Kumar <vireshk@kernel.org> <viresh.kumar@st.com>
|
||||
Viresh Kumar <vireshk@kernel.org> <viresh.linux@gmail.com>
|
||||
Viresh Kumar <viresh.kumar@linaro.org> <viresh.kumar@linaro.org>
|
||||
Viresh Kumar <viresh.kumar@linaro.org> <viresh.kumar@linaro.com>
|
||||
Vivien Didelot <vivien.didelot@gmail.com> <vivien.didelot@savoirfairelinux.com>
|
||||
Vlad Dogaru <ddvlad@gmail.com> <vlad.dogaru@intel.com>
|
||||
Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@parallels.com>
|
||||
|
@ -75,7 +75,7 @@ quiet_cmd_sphinx = SPHINX $@ --> file://$(abspath $(BUILDDIR)/$3/$4)
|
||||
cmd_sphinx = $(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/userspace-api/media $2 && \
|
||||
PYTHONDONTWRITEBYTECODE=1 \
|
||||
BUILDDIR=$(abspath $(BUILDDIR)) SPHINX_CONF=$(abspath $(srctree)/$(src)/$5/$(SPHINX_CONF)) \
|
||||
$(PYTHON) $(srctree)/scripts/jobserver-exec \
|
||||
$(PYTHON3) $(srctree)/scripts/jobserver-exec \
|
||||
$(SHELL) $(srctree)/Documentation/sphinx/parallel-wrapper.sh \
|
||||
$(SPHINXBUILD) \
|
||||
-b $2 \
|
||||
|
@ -13,6 +13,22 @@ This file documents the driver for the Rockchip ISP1 that is part of RK3288
|
||||
and RK3399 SoCs. The driver is located under drivers/staging/media/rkisp1
|
||||
and uses the Media-Controller API.
|
||||
|
||||
Revisions
|
||||
=========
|
||||
|
||||
There exist multiple smaller revisions to this ISP that got introduced in
|
||||
later SoCs. Revisions can be found in the enum :c:type:`rkisp1_cif_isp_version`
|
||||
in the UAPI and the revision of the ISP inside the running SoC can be read
|
||||
in the field hw_revision of struct media_device_info as returned by
|
||||
ioctl MEDIA_IOC_DEVICE_INFO.
|
||||
|
||||
Versions in use are:
|
||||
|
||||
- RKISP1_V10: used at least in rk3288 and rk3399
|
||||
- RKISP1_V11: declared in the original vendor code, but not used
|
||||
- RKISP1_V12: used at least in rk3326 and px30
|
||||
- RKISP1_V13: used at least in rk1808
|
||||
|
||||
Topology
|
||||
========
|
||||
.. _rkisp1_topology_graph:
|
||||
|
@ -70,8 +70,8 @@ trampoline code on the vDSO, that trampoline is never intercepted.
|
||||
[selector] is a pointer to a char-sized region in the process memory
|
||||
region, that provides a quick way to enable disable syscall redirection
|
||||
thread-wide, without the need to invoke the kernel directly. selector
|
||||
can be set to PR_SYS_DISPATCH_ON or PR_SYS_DISPATCH_OFF. Any other
|
||||
value should terminate the program with a SIGSYS.
|
||||
can be set to SYSCALL_DISPATCH_FILTER_ALLOW or SYSCALL_DISPATCH_FILTER_BLOCK.
|
||||
Any other value should terminate the program with a SIGSYS.
|
||||
|
||||
Security Notes
|
||||
--------------
|
||||
|
@ -100,6 +100,11 @@ Instruction Macros
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
This section covers ``SYM_FUNC_*`` and ``SYM_CODE_*`` enumerated above.
|
||||
|
||||
``objtool`` requires that all code must be contained in an ELF symbol. Symbol
|
||||
names that have a ``.L`` prefix do not emit symbol table entries. ``.L``
|
||||
prefixed symbols can be used within a code region, but should be avoided for
|
||||
denoting a range of code via ``SYM_*_START/END`` annotations.
|
||||
|
||||
* ``SYM_FUNC_START`` and ``SYM_FUNC_START_LOCAL`` are supposed to be **the
|
||||
most frequent markings**. They are used for functions with standard calling
|
||||
conventions -- global and local. Like in C, they both align the functions to
|
||||
|
@ -232,7 +232,6 @@ properties:
|
||||
by this cpu (see ./idle-states.yaml).
|
||||
|
||||
capacity-dmips-mhz:
|
||||
$ref: '/schemas/types.yaml#/definitions/uint32'
|
||||
description:
|
||||
u32 value representing CPU capacity (see ./cpu-capacity.txt) in
|
||||
DMIPS/MHz, relative to highest capacity-dmips-mhz
|
||||
|
@ -40,7 +40,7 @@ Optional properties:
|
||||
documents on how to describe the way the sii902x device is
|
||||
connected to the rest of the audio system:
|
||||
Documentation/devicetree/bindings/sound/simple-card.yaml
|
||||
Documentation/devicetree/bindings/sound/audio-graph-card.txt
|
||||
Documentation/devicetree/bindings/sound/audio-graph-card.yaml
|
||||
Note: In case of the audio-graph-card binding the used port
|
||||
index should be 3.
|
||||
|
||||
|
@ -23,7 +23,7 @@ connected to.
|
||||
|
||||
For a description of the display interface sink function blocks, see
|
||||
Documentation/devicetree/bindings/display/mediatek/mediatek,dsi.txt and
|
||||
Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt.
|
||||
Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.yaml.
|
||||
|
||||
Required properties (all function blocks):
|
||||
- compatible: "mediatek,<chip>-disp-<function>", one of
|
||||
@ -61,7 +61,7 @@ Required properties (DMA function blocks):
|
||||
"mediatek,<chip>-disp-wdma"
|
||||
the supported chips are mt2701, mt8167 and mt8173.
|
||||
- larb: Should contain a phandle pointing to the local arbiter device as defined
|
||||
in Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt
|
||||
in Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
|
||||
- iommus: Should point to the respective IOMMU block with master port as
|
||||
argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
||||
for details.
|
||||
|
@ -85,7 +85,6 @@ properties:
|
||||
wlf,micd-timeout-ms:
|
||||
description:
|
||||
Timeout for microphone detection, specified in milliseconds.
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
|
||||
wlf,micd-force-micbias:
|
||||
description:
|
||||
|
@ -49,7 +49,6 @@ properties:
|
||||
description:
|
||||
This property controls the Accumulation Dead band which allows to set the
|
||||
level of current below which no accumulation takes place.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
maximum: 255
|
||||
default: 0
|
||||
|
||||
|
@ -73,11 +73,9 @@ properties:
|
||||
description: |
|
||||
Temperature sensor trimming factor. It can be used to manually adjust the
|
||||
temperature measurements within 7.130 degrees Celsius.
|
||||
maxItems: 1
|
||||
items:
|
||||
default: 0
|
||||
minimum: 0
|
||||
maximum: 7130
|
||||
default: 0
|
||||
minimum: 0
|
||||
maximum: 7130
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
|
@ -52,7 +52,6 @@ properties:
|
||||
ti,bus-range-microvolt:
|
||||
description: |
|
||||
This is the operating range of the bus voltage in microvolt
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [16000000, 32000000]
|
||||
default: 32000000
|
||||
|
||||
|
@ -39,11 +39,9 @@ properties:
|
||||
|
||||
i2c-gpio,delay-us:
|
||||
description: delay between GPIO operations (may depend on each platform)
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
i2c-gpio,timeout-ms:
|
||||
description: timeout to get data
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
# Deprecated properties, do not use in new device tree sources:
|
||||
gpios:
|
||||
|
@ -66,21 +66,18 @@ properties:
|
||||
default: 400000
|
||||
|
||||
i2c-sda-hold-time-ns:
|
||||
maxItems: 1
|
||||
description: |
|
||||
The property should contain the SDA hold time in nanoseconds. This option
|
||||
is only supported in hardware blocks version 1.11a or newer or on
|
||||
Microsemi SoCs.
|
||||
|
||||
i2c-scl-falling-time-ns:
|
||||
maxItems: 1
|
||||
description: |
|
||||
The property should contain the SCL falling time in nanoseconds.
|
||||
This value is used to compute the tLOW period.
|
||||
default: 300
|
||||
|
||||
i2c-sda-falling-time-ns:
|
||||
maxItems: 1
|
||||
description: |
|
||||
The property should contain the SDA falling time in nanoseconds.
|
||||
This value is used to compute the tHIGH period.
|
||||
|
@ -80,7 +80,7 @@ properties:
|
||||
type: boolean
|
||||
|
||||
bipolar:
|
||||
description: see Documentation/devicetree/bindings/iio/adc/adc.txt
|
||||
description: see Documentation/devicetree/bindings/iio/adc/adc.yaml
|
||||
type: boolean
|
||||
|
||||
required:
|
||||
|
@ -23,7 +23,6 @@ properties:
|
||||
maxItems: 1
|
||||
|
||||
shunt-resistor-micro-ohms:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: |
|
||||
Value in micro Ohms of the shunt resistor connected between the RS+ and
|
||||
RS- inputs, across which the current is measured. Value needed to compute
|
||||
|
@ -246,7 +246,6 @@ patternProperties:
|
||||
Resolution (bits) to use for conversions:
|
||||
- can be 6, 8, 10 or 12 on stm32f4
|
||||
- can be 8, 10, 12, 14 or 16 on stm32h7 and stm32mp1
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
st,adc-channels:
|
||||
description: |
|
||||
|
@ -42,7 +42,6 @@ properties:
|
||||
const: 1
|
||||
|
||||
ti,channel0-current-microamp:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Channel 0 current in uA.
|
||||
enum:
|
||||
- 0
|
||||
@ -51,7 +50,6 @@ properties:
|
||||
- 20
|
||||
|
||||
ti,channel3-current-microamp:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Channel 3 current in uA.
|
||||
enum:
|
||||
- 0
|
||||
|
@ -46,31 +46,42 @@ properties:
|
||||
two properties must be present:
|
||||
|
||||
adi,range-microvolt:
|
||||
$ref: /schemas/types.yaml#/definitions/int32-array
|
||||
description: |
|
||||
Voltage output range specified as <minimum, maximum>
|
||||
enum:
|
||||
- [[0, 5000000]]
|
||||
- [[0, 10000000]]
|
||||
- [[-5000000, 5000000]]
|
||||
- [[-10000000, 10000000]]
|
||||
oneOf:
|
||||
- items:
|
||||
- const: 0
|
||||
- enum: [5000000, 10000000]
|
||||
- items:
|
||||
- const: -5000000
|
||||
- const: 5000000
|
||||
- items:
|
||||
- const: -10000000
|
||||
- const: 10000000
|
||||
|
||||
adi,range-microamp:
|
||||
$ref: /schemas/types.yaml#/definitions/int32-array
|
||||
description: |
|
||||
Current output range specified as <minimum, maximum>
|
||||
enum:
|
||||
- [[0, 20000]]
|
||||
- [[0, 24000]]
|
||||
- [[4, 24000]]
|
||||
- [[-20000, 20000]]
|
||||
- [[-24000, 24000]]
|
||||
- [[-1000, 22000]]
|
||||
oneOf:
|
||||
- items:
|
||||
- const: 0
|
||||
- enum: [20000, 24000]
|
||||
- items:
|
||||
- const: 4
|
||||
- const: 24000
|
||||
- items:
|
||||
- const: -20000
|
||||
- const: 20000
|
||||
- items:
|
||||
- const: -24000
|
||||
- const: 24000
|
||||
- items:
|
||||
- const: -1000
|
||||
- const: 22000
|
||||
|
||||
reset-gpios: true
|
||||
|
||||
adi,dc-dc-ilim-microamp:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [150000, 200000, 250000, 300000, 350000, 400000]
|
||||
description: |
|
||||
The dc-to-dc converter current limit.
|
||||
|
@ -21,7 +21,6 @@ properties:
|
||||
description: Connected to ADC_RDY pin.
|
||||
|
||||
maxim,led-current-microamp:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
description: |
|
||||
|
@ -5,7 +5,8 @@ Required properties:
|
||||
- compatible: "adc-keys"
|
||||
- io-channels: Phandle to an ADC channel
|
||||
- io-channel-names = "buttons";
|
||||
- keyup-threshold-microvolt: Voltage at which all the keys are considered up.
|
||||
- keyup-threshold-microvolt: Voltage above or equal to which all the keys are
|
||||
considered up.
|
||||
|
||||
Optional properties:
|
||||
- poll-interval: Poll interval time in milliseconds
|
||||
@ -17,7 +18,12 @@ Each button (key) is represented as a sub-node of "adc-keys":
|
||||
Required subnode-properties:
|
||||
- label: Descriptive name of the key.
|
||||
- linux,code: Keycode to emit.
|
||||
- press-threshold-microvolt: Voltage ADC input when this key is pressed.
|
||||
- press-threshold-microvolt: voltage above or equal to which this key is
|
||||
considered pressed.
|
||||
|
||||
No two values of press-threshold-microvolt may be the same.
|
||||
All values of press-threshold-microvolt must be less than
|
||||
keyup-threshold-microvolt.
|
||||
|
||||
Example:
|
||||
|
||||
@ -47,3 +53,15 @@ Example:
|
||||
press-threshold-microvolt = <500000>;
|
||||
};
|
||||
};
|
||||
|
||||
+--------------------------------+------------------------+
|
||||
| 2.000.000 <= value | no key pressed |
|
||||
+--------------------------------+------------------------+
|
||||
| 1.500.000 <= value < 2.000.000 | KEY_VOLUMEUP pressed |
|
||||
+--------------------------------+------------------------+
|
||||
| 1.000.000 <= value < 1.500.000 | KEY_VOLUMEDOWN pressed |
|
||||
+--------------------------------+------------------------+
|
||||
| 500.000 <= value < 1.000.000 | KEY_ENTER pressed |
|
||||
+--------------------------------+------------------------+
|
||||
| value < 500.000 | no key pressed |
|
||||
+--------------------------------+------------------------+
|
||||
|
@ -26,6 +26,7 @@ properties:
|
||||
- goodix,gt927
|
||||
- goodix,gt9271
|
||||
- goodix,gt928
|
||||
- goodix,gt9286
|
||||
- goodix,gt967
|
||||
|
||||
reg:
|
||||
|
@ -70,11 +70,9 @@ properties:
|
||||
|
||||
touchscreen-x-mm:
|
||||
description: horizontal length in mm of the touchscreen
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
touchscreen-y-mm:
|
||||
description: vertical length in mm of the touchscreen
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
dependencies:
|
||||
touchscreen-size-x: [ touchscreen-size-y ]
|
||||
|
111
Documentation/devicetree/bindings/leds/richtek,rt8515.yaml
Normal file
111
Documentation/devicetree/bindings/leds/richtek,rt8515.yaml
Normal file
@ -0,0 +1,111 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/leds/richtek,rt8515.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Richtek RT8515 1.5A dual channel LED driver
|
||||
|
||||
maintainers:
|
||||
- Linus Walleij <linus.walleij@linaro.org>
|
||||
|
||||
description: |
|
||||
The Richtek RT8515 is a dual channel (two mode) LED driver that
|
||||
supports driving a white LED in flash or torch mode. The maximum
|
||||
current for each mode is defined in hardware using two resistors
|
||||
RFS and RTS.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: richtek,rt8515
|
||||
|
||||
enf-gpios:
|
||||
maxItems: 1
|
||||
description: A connection to the 'ENF' (enable flash) pin.
|
||||
|
||||
ent-gpios:
|
||||
maxItems: 1
|
||||
description: A connection to the 'ENT' (enable torch) pin.
|
||||
|
||||
richtek,rfs-ohms:
|
||||
minimum: 7680
|
||||
maximum: 367000
|
||||
description: The resistance value of the RFS resistor. This
|
||||
resistors limits the maximum flash current. This must be set
|
||||
for the property flash-max-microamp to work, the RFS resistor
|
||||
defines the range of the dimmer setting (brightness) of the
|
||||
flash LED.
|
||||
|
||||
richtek,rts-ohms:
|
||||
minimum: 7680
|
||||
maximum: 367000
|
||||
description: The resistance value of the RTS resistor. This
|
||||
resistors limits the maximum torch current. This must be set
|
||||
for the property torch-max-microamp to work, the RTS resistor
|
||||
defines the range of the dimmer setting (brightness) of the
|
||||
torch LED.
|
||||
|
||||
led:
|
||||
type: object
|
||||
$ref: common.yaml#
|
||||
properties:
|
||||
function: true
|
||||
color: true
|
||||
flash-max-timeout-us: true
|
||||
|
||||
flash-max-microamp:
|
||||
maximum: 700000
|
||||
description: The maximum current for flash mode
|
||||
is hardwired to the component using the RFS resistor to
|
||||
ground. The maximum hardware current setting is calculated
|
||||
according to the formula Imax = 5500 / RFS. The lowest
|
||||
allowed resistance value is 7.86 kOhm giving an absolute
|
||||
maximum current of 700mA. By setting this attribute in
|
||||
the device tree, you can further restrict the maximum
|
||||
current below the hardware limit. This requires the RFS
|
||||
to be defined as it defines the maximum range.
|
||||
|
||||
led-max-microamp:
|
||||
maximum: 700000
|
||||
description: The maximum current for torch mode
|
||||
is hardwired to the component using the RTS resistor to
|
||||
ground. The maximum hardware current setting is calculated
|
||||
according to the formula Imax = 5500 / RTS. The lowest
|
||||
allowed resistance value is 7.86 kOhm giving an absolute
|
||||
maximum current of 700mA. By setting this attribute in
|
||||
the device tree, you can further restrict the maximum
|
||||
current below the hardware limit. This requires the RTS
|
||||
to be defined as it defines the maximum range.
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- ent-gpios
|
||||
- enf-gpios
|
||||
- led
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
led-controller {
|
||||
compatible = "richtek,rt8515";
|
||||
enf-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
|
||||
ent-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
|
||||
richtek,rfs-ohms = <16000>;
|
||||
richtek,rts-ohms = <100000>;
|
||||
|
||||
led {
|
||||
function = LED_FUNCTION_FLASH;
|
||||
color = <LED_COLOR_ID_WHITE>;
|
||||
flash-max-timeout-us = <250000>;
|
||||
flash-max-microamp = <150000>;
|
||||
led-max-microamp = <25000>;
|
||||
};
|
||||
};
|
||||
|
||||
...
|
@ -16,7 +16,7 @@ Required properties:
|
||||
- power-domains: a phandle to the power domain, see
|
||||
Documentation/devicetree/bindings/power/power_domain.txt for details.
|
||||
- mediatek,larb: must contain the local arbiters in the current Socs, see
|
||||
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt
|
||||
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
|
||||
for details.
|
||||
- iommus: should point to the respective IOMMU block with master port as
|
||||
argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
||||
|
@ -14,7 +14,7 @@ Required properties:
|
||||
- power-domains: a phandle to the power domain, see
|
||||
Documentation/devicetree/bindings/power/power_domain.txt for details.
|
||||
- mediatek,larb: must contain the local arbiters in the current SoCs, see
|
||||
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt
|
||||
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
|
||||
for details.
|
||||
- iommus: should point to the respective IOMMU block with master port as
|
||||
argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
||||
|
@ -28,7 +28,7 @@ Required properties (DMA function blocks, child node):
|
||||
argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
||||
for details.
|
||||
- mediatek,larb: must contain the local arbiters in the current Socs, see
|
||||
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt
|
||||
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
|
||||
for details.
|
||||
|
||||
Example:
|
||||
|
@ -259,7 +259,6 @@ properties:
|
||||
waiting for I/O signalling and card power supply to be stable,
|
||||
regardless of whether pwrseq-simple is used. Default to 10ms if
|
||||
no available.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
default: 10
|
||||
|
||||
supports-cqe:
|
||||
|
@ -41,13 +41,11 @@ properties:
|
||||
description:
|
||||
Delay in ms after powering the card and de-asserting the
|
||||
reset-gpios (if any).
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
power-off-delay-us:
|
||||
description:
|
||||
Delay in us after asserting the reset-gpios (if any)
|
||||
during power off of the card.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
@ -122,7 +122,6 @@ properties:
|
||||
such as flow control thresholds.
|
||||
|
||||
rx-internal-delay-ps:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: |
|
||||
RGMII Receive Clock Delay defined in pico seconds.
|
||||
This is used for controllers that have configurable RX internal delays.
|
||||
@ -140,7 +139,6 @@ properties:
|
||||
is used for components that can have configurable fifo sizes.
|
||||
|
||||
tx-internal-delay-ps:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: |
|
||||
RGMII Transmit Clock Delay defined in pico seconds.
|
||||
This is used for controllers that have configurable TX internal delays.
|
||||
|
@ -212,7 +212,6 @@ properties:
|
||||
Triplet of delays. The 1st cell is reset pre-delay in micro
|
||||
seconds. The 2nd cell is reset pulse in micro seconds. The 3rd
|
||||
cell is reset post-delay in micro seconds.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
minItems: 3
|
||||
maxItems: 3
|
||||
|
||||
|
@ -83,21 +83,18 @@ properties:
|
||||
for each of the battery capacity lookup table.
|
||||
|
||||
operating-range-celsius:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
description: operating temperature range of a battery
|
||||
items:
|
||||
- description: minimum temperature at which battery can operate
|
||||
- description: maximum temperature at which battery can operate
|
||||
|
||||
ambient-celsius:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
description: safe range of ambient temperature
|
||||
items:
|
||||
- description: alert when ambient temperature is lower than this value
|
||||
- description: alert when ambient temperature is higher than this value
|
||||
|
||||
alert-celsius:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
description: safe range of battery temperature
|
||||
items:
|
||||
- description: alert when battery temperature is lower than this value
|
||||
|
@ -50,7 +50,6 @@ properties:
|
||||
maxItems: 1
|
||||
|
||||
input-current-limit-microamp:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Maximum input current in micro Amps.
|
||||
minimum: 50000
|
||||
maximum: 500000
|
||||
|
@ -62,7 +62,6 @@ properties:
|
||||
description: IRQ line information.
|
||||
|
||||
dlg,irq-polling-delay-passive-ms:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 1000
|
||||
maximum: 10000
|
||||
description: |
|
||||
|
@ -72,11 +72,9 @@ properties:
|
||||
|
||||
startup-delay-us:
|
||||
description: startup time in microseconds
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
off-on-delay-us:
|
||||
description: off delay time in microseconds
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
enable-active-high:
|
||||
description:
|
||||
|
@ -27,7 +27,6 @@ properties:
|
||||
1: chargeable
|
||||
|
||||
quartz-load-femtofarads:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
The capacitive load of the quartz(x-tal), expressed in femto
|
||||
Farad (fF). The default value shall be listed (if optional),
|
||||
@ -47,7 +46,6 @@ properties:
|
||||
deprecated: true
|
||||
|
||||
trickle-resistor-ohms:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
Selected resistor for trickle charger. Should be given
|
||||
if trickle charger should be enabled.
|
||||
|
@ -88,14 +88,12 @@ properties:
|
||||
description:
|
||||
Rate at which poll occurs when auto-poll is set.
|
||||
default 100ms.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
default: 100
|
||||
|
||||
poll-timeout-ms:
|
||||
description:
|
||||
Poll timeout when auto-poll is set, default
|
||||
3000ms.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
default: 3000
|
||||
|
||||
required:
|
||||
|
@ -7,8 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
title: Mediatek MT8192 with MT6359, RT1015 and RT5682 ASoC sound card driver
|
||||
|
||||
maintainers:
|
||||
- Jiaxin Yu <jiaxin.yu@mediatek.com>
|
||||
- Shane Chien <shane.chien@mediatek.com>
|
||||
- Jiaxin Yu <jiaxin.yu@mediatek.com>
|
||||
- Shane Chien <shane.chien@mediatek.com>
|
||||
|
||||
description:
|
||||
This binding describes the MT8192 sound card.
|
||||
|
@ -41,14 +41,12 @@ properties:
|
||||
values of 2k, 4k or 8k. If set to 0 it will be off. If this node is not
|
||||
mentioned or if the value is unknown, then micbias resistor is set to
|
||||
4k.
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
enum: [ 0, 2, 4, 8 ]
|
||||
|
||||
micbias-voltage-m-volts:
|
||||
description: The bias voltage to be used in mVolts. The voltage can take
|
||||
values from 1.25V to 3V by 250mV steps. If this node is not mentioned
|
||||
or the value is unknown, then the value is set to 1.25V.
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
enum: [ 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000 ]
|
||||
|
||||
lrclk-strength:
|
||||
|
@ -21,6 +21,8 @@ properties:
|
||||
reg:
|
||||
description: module registers
|
||||
|
||||
ranges: true
|
||||
|
||||
power-domains:
|
||||
description:
|
||||
PM domain provider node and an args specifier containing
|
||||
@ -62,6 +64,8 @@ properties:
|
||||
'#size-cells':
|
||||
const: 2
|
||||
|
||||
dma-coherent: true
|
||||
|
||||
patternProperties:
|
||||
"^usb@":
|
||||
type: object
|
||||
|
@ -19,7 +19,6 @@ properties:
|
||||
pattern: "^watchdog(@.*|-[0-9a-f])?$"
|
||||
|
||||
timeout-sec:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
Contains the watchdog timeout in seconds.
|
||||
|
||||
|
@ -586,6 +586,14 @@ without significant effort.
|
||||
The advantage of mounting with the "volatile" option is that all forms of
|
||||
sync calls to the upper filesystem are omitted.
|
||||
|
||||
In order to avoid a giving a false sense of safety, the syncfs (and fsync)
|
||||
semantics of volatile mounts are slightly different than that of the rest of
|
||||
VFS. If any writeback error occurs on the upperdir's filesystem after a
|
||||
volatile mount takes place, all sync functions will return an error. Once this
|
||||
condition is reached, the filesystem will not recover, and every subsequent sync
|
||||
call will return an error, even if the upperdir has not experience a new error
|
||||
since the last sync call.
|
||||
|
||||
When overlay is mounted with "volatile" option, the directory
|
||||
"$workdir/work/incompat/volatile" is created. During next mount, overlay
|
||||
checks for this directory and refuses to mount if present. This is a strong
|
||||
|
@ -11,16 +11,13 @@ compiler [1]_. They are useful for runtime instrumentation and static analysis.
|
||||
We can analyse, change and add further code during compilation via
|
||||
callbacks [2]_, GIMPLE [3]_, IPA [4]_ and RTL passes [5]_.
|
||||
|
||||
The GCC plugin infrastructure of the kernel supports all gcc versions from
|
||||
4.5 to 6.0, building out-of-tree modules, cross-compilation and building in a
|
||||
separate directory.
|
||||
Plugin source files have to be compilable by both a C and a C++ compiler as well
|
||||
because gcc versions 4.5 and 4.6 are compiled by a C compiler,
|
||||
gcc-4.7 can be compiled by a C or a C++ compiler,
|
||||
and versions 4.8+ can only be compiled by a C++ compiler.
|
||||
The GCC plugin infrastructure of the kernel supports building out-of-tree
|
||||
modules, cross-compilation and building in a separate directory.
|
||||
Plugin source files have to be compilable by a C++ compiler.
|
||||
|
||||
Currently the GCC plugin infrastructure supports only the x86, arm, arm64 and
|
||||
powerpc architectures.
|
||||
Currently the GCC plugin infrastructure supports only some architectures.
|
||||
Grep "select HAVE_GCC_PLUGINS" to find out which architectures support
|
||||
GCC plugins.
|
||||
|
||||
This infrastructure was ported from grsecurity [6]_ and PaX [7]_.
|
||||
|
||||
@ -47,20 +44,13 @@ Files
|
||||
This is a compatibility header for GCC plugins.
|
||||
It should be always included instead of individual gcc headers.
|
||||
|
||||
**$(src)/scripts/gcc-plugin.sh**
|
||||
|
||||
This script checks the availability of the included headers in
|
||||
gcc-common.h and chooses the proper host compiler to build the plugins
|
||||
(gcc-4.7 can be built by either gcc or g++).
|
||||
|
||||
**$(src)/scripts/gcc-plugins/gcc-generate-gimple-pass.h,
|
||||
$(src)/scripts/gcc-plugins/gcc-generate-ipa-pass.h,
|
||||
$(src)/scripts/gcc-plugins/gcc-generate-simple_ipa-pass.h,
|
||||
$(src)/scripts/gcc-plugins/gcc-generate-rtl-pass.h**
|
||||
|
||||
These headers automatically generate the registration structures for
|
||||
GIMPLE, SIMPLE_IPA, IPA and RTL passes. They support all gcc versions
|
||||
from 4.5 to 6.0.
|
||||
GIMPLE, SIMPLE_IPA, IPA and RTL passes.
|
||||
They should be preferred to creating the structures by hand.
|
||||
|
||||
|
||||
@ -68,21 +58,25 @@ Usage
|
||||
=====
|
||||
|
||||
You must install the gcc plugin headers for your gcc version,
|
||||
e.g., on Ubuntu for gcc-4.9::
|
||||
e.g., on Ubuntu for gcc-10::
|
||||
|
||||
apt-get install gcc-4.9-plugin-dev
|
||||
apt-get install gcc-10-plugin-dev
|
||||
|
||||
Or on Fedora::
|
||||
|
||||
dnf install gcc-plugin-devel
|
||||
|
||||
Enable a GCC plugin based feature in the kernel config::
|
||||
Enable the GCC plugin infrastructure and some plugin(s) you want to use
|
||||
in the kernel config::
|
||||
|
||||
CONFIG_GCC_PLUGIN_CYC_COMPLEXITY = y
|
||||
CONFIG_GCC_PLUGINS=y
|
||||
CONFIG_GCC_PLUGIN_CYC_COMPLEXITY=y
|
||||
CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y
|
||||
...
|
||||
|
||||
To compile only the plugin(s)::
|
||||
To compile the minimum tool set including the plugin(s)::
|
||||
|
||||
make gcc-plugins
|
||||
make scripts
|
||||
|
||||
or just run the kernel make and compile the whole kernel with
|
||||
the cyclomatic complexity GCC plugin.
|
||||
@ -91,7 +85,8 @@ the cyclomatic complexity GCC plugin.
|
||||
4. How to add a new GCC plugin
|
||||
==============================
|
||||
|
||||
The GCC plugins are in $(src)/scripts/gcc-plugins/. You can use a file or a directory
|
||||
here. It must be added to $(src)/scripts/gcc-plugins/Makefile,
|
||||
$(src)/scripts/Makefile.gcc-plugins and $(src)/arch/Kconfig.
|
||||
The GCC plugins are in scripts/gcc-plugins/. You need to put plugin source files
|
||||
right under scripts/gcc-plugins/. Creating subdirectories is not supported.
|
||||
It must be added to scripts/gcc-plugins/Makefile, scripts/Makefile.gcc-plugins
|
||||
and a relevant Kconfig file.
|
||||
See the cyc_complexity_plugin.c (CONFIG_GCC_PLUGIN_CYC_COMPLEXITY) GCC plugin.
|
||||
|
@ -63,6 +63,50 @@ They can be enabled individually. The full list of the parameters: ::
|
||||
Currently, the integrated assembler is disabled by default. You can pass
|
||||
``LLVM_IAS=1`` to enable it.
|
||||
|
||||
Supported Architectures
|
||||
-----------------------
|
||||
|
||||
LLVM does not target all of the architectures that Linux supports and
|
||||
just because a target is supported in LLVM does not mean that the kernel
|
||||
will build or work without any issues. Below is a general summary of
|
||||
architectures that currently work with ``CC=clang`` or ``LLVM=1``. Level
|
||||
of support corresponds to "S" values in the MAINTAINERS files. If an
|
||||
architecture is not present, it either means that LLVM does not target
|
||||
it or there are known issues. Using the latest stable version of LLVM or
|
||||
even the development tree will generally yield the best results.
|
||||
An architecture's ``defconfig`` is generally expected to work well,
|
||||
certain configurations may have problems that have not been uncovered
|
||||
yet. Bug reports are always welcome at the issue tracker below!
|
||||
|
||||
.. list-table::
|
||||
:widths: 10 10 10
|
||||
:header-rows: 1
|
||||
|
||||
* - Architecture
|
||||
- Level of support
|
||||
- ``make`` command
|
||||
* - arm
|
||||
- Supported
|
||||
- ``LLVM=1``
|
||||
* - arm64
|
||||
- Supported
|
||||
- ``LLVM=1``
|
||||
* - mips
|
||||
- Maintained
|
||||
- ``CC=clang``
|
||||
* - powerpc
|
||||
- Maintained
|
||||
- ``CC=clang``
|
||||
* - riscv
|
||||
- Maintained
|
||||
- ``CC=clang``
|
||||
* - s390
|
||||
- Maintained
|
||||
- ``CC=clang``
|
||||
* - x86
|
||||
- Supported
|
||||
- ``LLVM=1``
|
||||
|
||||
Getting Help
|
||||
------------
|
||||
|
||||
|
@ -755,7 +755,7 @@ more details, with real examples.
|
||||
bits on the scripts nonetheless.
|
||||
|
||||
Kbuild provides variables $(CONFIG_SHELL), $(AWK), $(PERL),
|
||||
$(PYTHON) and $(PYTHON3) to refer to interpreters for the respective
|
||||
and $(PYTHON3) to refer to interpreters for the respective
|
||||
scripts.
|
||||
|
||||
Example::
|
||||
|
@ -1196,7 +1196,7 @@ icmp_errors_use_inbound_ifaddr - BOOLEAN
|
||||
|
||||
If non-zero, the message will be sent with the primary address of
|
||||
the interface that received the packet that caused the icmp error.
|
||||
This is the behaviour network many administrators will expect from
|
||||
This is the behaviour many network administrators will expect from
|
||||
a router. And it can make debugging complicated network layouts
|
||||
much easier.
|
||||
|
||||
@ -1807,12 +1807,24 @@ seg6_flowlabel - INTEGER
|
||||
``conf/default/*``:
|
||||
Change the interface-specific default settings.
|
||||
|
||||
These settings would be used during creating new interfaces.
|
||||
|
||||
|
||||
``conf/all/*``:
|
||||
Change all the interface-specific settings.
|
||||
|
||||
[XXX: Other special features than forwarding?]
|
||||
|
||||
conf/all/disable_ipv6 - BOOLEAN
|
||||
Changing this value is same as changing ``conf/default/disable_ipv6``
|
||||
setting and also all per-interface ``disable_ipv6`` settings to the same
|
||||
value.
|
||||
|
||||
Reading this value does not have any particular meaning. It does not say
|
||||
whether IPv6 support is enabled or disabled. Returned value can be 1
|
||||
also in the case when some interface has ``disable_ipv6`` set to 0 and
|
||||
has configured IPv6 addresses.
|
||||
|
||||
conf/all/forwarding - BOOLEAN
|
||||
Enable global IPv6 forwarding between all interfaces.
|
||||
|
||||
|
@ -360,10 +360,9 @@ since the last call to this ioctl. Bit 0 is the first page in the
|
||||
memory slot. Ensure the entire structure is cleared to avoid padding
|
||||
issues.
|
||||
|
||||
If KVM_CAP_MULTI_ADDRESS_SPACE is available, bits 16-31 specifies
|
||||
the address space for which you want to return the dirty bitmap.
|
||||
They must be less than the value that KVM_CHECK_EXTENSION returns for
|
||||
the KVM_CAP_MULTI_ADDRESS_SPACE capability.
|
||||
If KVM_CAP_MULTI_ADDRESS_SPACE is available, bits 16-31 of slot field specifies
|
||||
the address space for which you want to return the dirty bitmap. See
|
||||
KVM_SET_USER_MEMORY_REGION for details on the usage of slot field.
|
||||
|
||||
The bits in the dirty bitmap are cleared before the ioctl returns, unless
|
||||
KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2 is enabled. For more information,
|
||||
@ -1281,6 +1280,9 @@ field userspace_addr, which must point at user addressable memory for
|
||||
the entire memory slot size. Any object may back this memory, including
|
||||
anonymous memory, ordinary files, and hugetlbfs.
|
||||
|
||||
On architectures that support a form of address tagging, userspace_addr must
|
||||
be an untagged address.
|
||||
|
||||
It is recommended that the lower 21 bits of guest_phys_addr and userspace_addr
|
||||
be identical. This allows large pages in the guest to be backed by large
|
||||
pages in the host.
|
||||
@ -1333,7 +1335,7 @@ documentation when it pops into existence).
|
||||
|
||||
:Capability: KVM_CAP_ENABLE_CAP_VM
|
||||
:Architectures: all
|
||||
:Type: vcpu ioctl
|
||||
:Type: vm ioctl
|
||||
:Parameters: struct kvm_enable_cap (in)
|
||||
:Returns: 0 on success; -1 on error
|
||||
|
||||
@ -4432,7 +4434,7 @@ to I/O ports.
|
||||
:Capability: KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2
|
||||
:Architectures: x86, arm, arm64, mips
|
||||
:Type: vm ioctl
|
||||
:Parameters: struct kvm_dirty_log (in)
|
||||
:Parameters: struct kvm_clear_dirty_log (in)
|
||||
:Returns: 0 on success, -1 on error
|
||||
|
||||
::
|
||||
@ -4459,10 +4461,9 @@ in KVM's dirty bitmap, and dirty tracking is re-enabled for that page
|
||||
(for example via write-protection, or by clearing the dirty bit in
|
||||
a page table entry).
|
||||
|
||||
If KVM_CAP_MULTI_ADDRESS_SPACE is available, bits 16-31 specifies
|
||||
the address space for which you want to return the dirty bitmap.
|
||||
They must be less than the value that KVM_CHECK_EXTENSION returns for
|
||||
the KVM_CAP_MULTI_ADDRESS_SPACE capability.
|
||||
If KVM_CAP_MULTI_ADDRESS_SPACE is available, bits 16-31 of slot field specifies
|
||||
the address space for which you want to clear the dirty status. See
|
||||
KVM_SET_USER_MEMORY_REGION for details on the usage of slot field.
|
||||
|
||||
This ioctl is mostly useful when KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2
|
||||
is enabled; for more information, see the description of the capability.
|
||||
|
@ -37,8 +37,10 @@ call L2.
|
||||
Running nested VMX
|
||||
------------------
|
||||
|
||||
The nested VMX feature is disabled by default. It can be enabled by giving
|
||||
the "nested=1" option to the kvm-intel module.
|
||||
The nested VMX feature is enabled by default since Linux kernel v4.20. For
|
||||
older Linux kernel, it can be enabled by giving the "nested=1" option to the
|
||||
kvm-intel module.
|
||||
|
||||
|
||||
No modifications are required to user space (qemu). However, qemu's default
|
||||
emulated CPU type (qemu64) does not list the "VMX" CPU feature, so it must be
|
||||
|
@ -74,7 +74,7 @@ few:
|
||||
Enabling "nested" (x86)
|
||||
-----------------------
|
||||
|
||||
From Linux kernel v4.19 onwards, the ``nested`` KVM parameter is enabled
|
||||
From Linux kernel v4.20 onwards, the ``nested`` KVM parameter is enabled
|
||||
by default for Intel and AMD. (Though your Linux distribution might
|
||||
override this default.)
|
||||
|
||||
|
23
MAINTAINERS
23
MAINTAINERS
@ -2616,8 +2616,8 @@ S: Maintained
|
||||
F: drivers/power/reset/keystone-reset.c
|
||||
|
||||
ARM/TEXAS INSTRUMENTS K3 ARCHITECTURE
|
||||
M: Tero Kristo <t-kristo@ti.com>
|
||||
M: Nishanth Menon <nm@ti.com>
|
||||
M: Tero Kristo <kristo@kernel.org>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Supported
|
||||
F: Documentation/devicetree/bindings/arm/ti/k3.yaml
|
||||
@ -3239,6 +3239,7 @@ L: netdev@vger.kernel.org
|
||||
S: Supported
|
||||
W: http://sourceforge.net/projects/bonding/
|
||||
F: drivers/net/bonding/
|
||||
F: include/net/bonding.h
|
||||
F: include/uapi/linux/if_bonding.h
|
||||
|
||||
BOSCH SENSORTEC BMA400 ACCELEROMETER IIO DRIVER
|
||||
@ -3411,7 +3412,7 @@ F: Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml
|
||||
F: drivers/pci/controller/pcie-brcmstb.c
|
||||
F: drivers/staging/vc04_services
|
||||
N: bcm2711
|
||||
N: bcm2835
|
||||
N: bcm283*
|
||||
|
||||
BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITECTURE
|
||||
M: Florian Fainelli <f.fainelli@gmail.com>
|
||||
@ -4303,7 +4304,7 @@ S: Maintained
|
||||
F: .clang-format
|
||||
|
||||
CLANG/LLVM BUILD SUPPORT
|
||||
M: Nathan Chancellor <natechancellor@gmail.com>
|
||||
M: Nathan Chancellor <nathan@kernel.org>
|
||||
M: Nick Desaulniers <ndesaulniers@google.com>
|
||||
L: clang-built-linux@googlegroups.com
|
||||
S: Supported
|
||||
@ -6473,9 +6474,9 @@ S: Maintained
|
||||
F: drivers/edac/skx_*.[ch]
|
||||
|
||||
EDAC-TI
|
||||
M: Tero Kristo <t-kristo@ti.com>
|
||||
M: Tero Kristo <kristo@kernel.org>
|
||||
L: linux-edac@vger.kernel.org
|
||||
S: Maintained
|
||||
S: Odd Fixes
|
||||
F: drivers/edac/ti_edac.c
|
||||
|
||||
EDIROL UA-101/UA-1000 DRIVER
|
||||
@ -8433,11 +8434,8 @@ F: drivers/i3c/
|
||||
F: include/linux/i3c/
|
||||
|
||||
IA64 (Itanium) PLATFORM
|
||||
M: Tony Luck <tony.luck@intel.com>
|
||||
M: Fenghua Yu <fenghua.yu@intel.com>
|
||||
L: linux-ia64@vger.kernel.org
|
||||
S: Odd Fixes
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux.git
|
||||
S: Orphan
|
||||
F: Documentation/ia64/
|
||||
F: arch/ia64/
|
||||
|
||||
@ -12417,6 +12415,7 @@ F: tools/testing/selftests/net/ipsec.c
|
||||
NETWORKING [IPv4/IPv6]
|
||||
M: "David S. Miller" <davem@davemloft.net>
|
||||
M: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
|
||||
M: David Ahern <dsahern@kernel.org>
|
||||
L: netdev@vger.kernel.org
|
||||
S: Maintained
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
|
||||
@ -17575,7 +17574,7 @@ F: include/linux/dma/k3-psil.h
|
||||
|
||||
TEXAS INSTRUMENTS' SYSTEM CONTROL INTERFACE (TISCI) PROTOCOL DRIVER
|
||||
M: Nishanth Menon <nm@ti.com>
|
||||
M: Tero Kristo <t-kristo@ti.com>
|
||||
M: Tero Kristo <kristo@kernel.org>
|
||||
M: Santosh Shilimkar <ssantosh@kernel.org>
|
||||
L: linux-arm-kernel@lists.infradead.org
|
||||
S: Maintained
|
||||
@ -17719,9 +17718,9 @@ S: Maintained
|
||||
F: drivers/clk/clk-cdce706.c
|
||||
|
||||
TI CLOCK DRIVER
|
||||
M: Tero Kristo <t-kristo@ti.com>
|
||||
M: Tero Kristo <kristo@kernel.org>
|
||||
L: linux-omap@vger.kernel.org
|
||||
S: Maintained
|
||||
S: Odd Fixes
|
||||
F: drivers/clk/ti/
|
||||
F: include/linux/clk/ti.h
|
||||
|
||||
|
15
Makefile
15
Makefile
@ -2,7 +2,7 @@
|
||||
VERSION = 5
|
||||
PATCHLEVEL = 11
|
||||
SUBLEVEL = 0
|
||||
EXTRAVERSION = -rc5
|
||||
EXTRAVERSION = -rc7
|
||||
NAME = Kleptomaniac Octopus
|
||||
|
||||
# *DOCUMENTATION*
|
||||
@ -452,7 +452,6 @@ AWK = awk
|
||||
INSTALLKERNEL := installkernel
|
||||
DEPMOD = depmod
|
||||
PERL = perl
|
||||
PYTHON = python
|
||||
PYTHON3 = python3
|
||||
CHECK = sparse
|
||||
BASH = bash
|
||||
@ -508,7 +507,7 @@ CLANG_FLAGS :=
|
||||
|
||||
export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC
|
||||
export CPP AR NM STRIP OBJCOPY OBJDUMP READELF PAHOLE RESOLVE_BTFIDS LEX YACC AWK INSTALLKERNEL
|
||||
export PERL PYTHON PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
|
||||
export PERL PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
|
||||
export KGZIP KBZIP2 KLZOP LZMA LZ4 XZ ZSTD
|
||||
export KBUILD_HOSTCXXFLAGS KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS LDFLAGS_MODULE
|
||||
|
||||
@ -812,10 +811,12 @@ KBUILD_CFLAGS += -ftrivial-auto-var-init=zero
|
||||
KBUILD_CFLAGS += -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang
|
||||
endif
|
||||
|
||||
DEBUG_CFLAGS :=
|
||||
|
||||
# Workaround for GCC versions < 5.0
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801
|
||||
ifdef CONFIG_CC_IS_GCC
|
||||
DEBUG_CFLAGS := $(call cc-ifversion, -lt, 0500, $(call cc-option, -fno-var-tracking-assignments))
|
||||
DEBUG_CFLAGS += $(call cc-ifversion, -lt, 0500, $(call cc-option, -fno-var-tracking-assignments))
|
||||
endif
|
||||
|
||||
ifdef CONFIG_DEBUG_INFO
|
||||
@ -948,12 +949,6 @@ KBUILD_CFLAGS += $(call cc-option,-Werror=designated-init)
|
||||
# change __FILE__ to the relative path from the srctree
|
||||
KBUILD_CPPFLAGS += $(call cc-option,-fmacro-prefix-map=$(srctree)/=)
|
||||
|
||||
# ensure -fcf-protection is disabled when using retpoline as it is
|
||||
# incompatible with -mindirect-branch=thunk-extern
|
||||
ifdef CONFIG_RETPOLINE
|
||||
KBUILD_CFLAGS += $(call cc-option,-fcf-protection=none)
|
||||
endif
|
||||
|
||||
# include additional Makefiles when needed
|
||||
include-y := scripts/Makefile.extrawarn
|
||||
include-$(CONFIG_KASAN) += scripts/Makefile.kasan
|
||||
|
@ -15,7 +15,8 @@ static int node_offset(void *fdt, const char *node_path)
|
||||
{
|
||||
int offset = fdt_path_offset(fdt, node_path);
|
||||
if (offset == -FDT_ERR_NOTFOUND)
|
||||
offset = fdt_add_subnode(fdt, 0, node_path);
|
||||
/* Add the node to root if not found, dropping the leading '/' */
|
||||
offset = fdt_add_subnode(fdt, 0, node_path + 1);
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
@ -16,6 +16,13 @@
|
||||
stdout-path = &uart1;
|
||||
};
|
||||
|
||||
aliases {
|
||||
mmc0 = &usdhc2;
|
||||
mmc1 = &usdhc3;
|
||||
mmc2 = &usdhc4;
|
||||
/delete-property/ mmc3;
|
||||
};
|
||||
|
||||
memory@10000000 {
|
||||
device_type = "memory";
|
||||
reg = <0x10000000 0x80000000>;
|
||||
|
@ -418,7 +418,7 @@
|
||||
|
||||
/* VDD_AUD_1P8: Audio codec */
|
||||
reg_aud_1p8v: ldo3 {
|
||||
regulator-name = "vdd1p8";
|
||||
regulator-name = "vdd1p8a";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-boot-on;
|
||||
|
@ -137,7 +137,7 @@
|
||||
|
||||
lcd_backlight: lcd-backlight {
|
||||
compatible = "pwm-backlight";
|
||||
pwms = <&pwm4 0 5000000>;
|
||||
pwms = <&pwm4 0 5000000 0>;
|
||||
pwm-names = "LCD_BKLT_PWM";
|
||||
|
||||
brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
|
||||
@ -167,7 +167,7 @@
|
||||
i2c-gpio,delay-us = <2>; /* ~100 kHz */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabld";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c_cam: i2c-gpio-cam {
|
||||
@ -179,7 +179,7 @@
|
||||
i2c-gpio,delay-us = <2>; /* ~100 kHz */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabld";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -53,7 +53,6 @@
|
||||
&fec {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_microsom_enet_ar8035>;
|
||||
phy-handle = <&phy>;
|
||||
phy-mode = "rgmii-id";
|
||||
phy-reset-duration = <2>;
|
||||
phy-reset-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;
|
||||
@ -63,10 +62,19 @@
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
phy: ethernet-phy@0 {
|
||||
/*
|
||||
* The PHY can appear at either address 0 or 4 due to the
|
||||
* configuration (LED) pin not being pulled sufficiently.
|
||||
*/
|
||||
ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
qca,clk-out-frequency = <125000000>;
|
||||
};
|
||||
|
||||
ethernet-phy@4 {
|
||||
reg = <4>;
|
||||
qca,clk-out-frequency = <125000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -115,6 +115,7 @@
|
||||
compatible = "nxp,pcf2127";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <2000000>;
|
||||
reset-source;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -326,9 +326,6 @@
|
||||
|
||||
clocks = <&xtal_32k>, <&xtal>;
|
||||
clock-names = "xtal_32k", "xtal";
|
||||
|
||||
assigned-clocks = <&clk LPC32XX_CLK_HCLK_PLL>;
|
||||
assigned-clock-rates = <208000000>;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -114,7 +114,7 @@
|
||||
gpio-sck = <&gpio1 12 GPIO_ACTIVE_HIGH>;
|
||||
gpio-miso = <&gpio1 18 GPIO_ACTIVE_HIGH>;
|
||||
gpio-mosi = <&gpio1 20 GPIO_ACTIVE_HIGH>;
|
||||
cs-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
|
||||
cs-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
|
||||
num-chipselects = <1>;
|
||||
|
||||
/* lcd panel */
|
||||
@ -124,7 +124,6 @@
|
||||
spi-max-frequency = <100000>;
|
||||
spi-cpol;
|
||||
spi-cpha;
|
||||
spi-cs-high;
|
||||
|
||||
backlight= <&backlight>;
|
||||
label = "lcd";
|
||||
|
@ -16,8 +16,13 @@
|
||||
debounce-interval = <10>;
|
||||
};
|
||||
|
||||
/*
|
||||
* We use pad 0x4a100116 abe_dmic_din3.gpio_122 as the irq instead
|
||||
* of the gpio interrupt to avoid lost events in deeper idle states.
|
||||
*/
|
||||
slider {
|
||||
label = "Keypad Slide";
|
||||
interrupts-extended = <&omap4_pmx_core 0xd6>;
|
||||
gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>; /* gpio122 */
|
||||
linux,input-type = <EV_SW>;
|
||||
linux,code = <SW_KEYPAD_SLIDE>;
|
||||
|
@ -12,4 +12,42 @@
|
||||
200000 0>;
|
||||
};
|
||||
};
|
||||
|
||||
reserved-memory {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
/* Modem trace memory */
|
||||
ram@06000000 {
|
||||
reg = <0x06000000 0x00f00000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
/* Modem shared memory */
|
||||
ram@06f00000 {
|
||||
reg = <0x06f00000 0x00100000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
/* Modem private memory */
|
||||
ram@07000000 {
|
||||
reg = <0x07000000 0x01000000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
/*
|
||||
* Initial Secure Software ISSW memory
|
||||
*
|
||||
* This is probably only used if the kernel tries
|
||||
* to actually call into trustzone to run secure
|
||||
* applications, which the mainline kernel probably
|
||||
* will not do on this old chipset. But you can never
|
||||
* be too careful, so reserve this memory anyway.
|
||||
*/
|
||||
ram@17f00000 {
|
||||
reg = <0x17f00000 0x00100000>;
|
||||
no-map;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -12,4 +12,42 @@
|
||||
200000 0>;
|
||||
};
|
||||
};
|
||||
|
||||
reserved-memory {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
/* Modem trace memory */
|
||||
ram@06000000 {
|
||||
reg = <0x06000000 0x00f00000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
/* Modem shared memory */
|
||||
ram@06f00000 {
|
||||
reg = <0x06f00000 0x00100000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
/* Modem private memory */
|
||||
ram@07000000 {
|
||||
reg = <0x07000000 0x01000000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
/*
|
||||
* Initial Secure Software ISSW memory
|
||||
*
|
||||
* This is probably only used if the kernel tries
|
||||
* to actually call into trustzone to run secure
|
||||
* applications, which the mainline kernel probably
|
||||
* will not do on this old chipset. But you can never
|
||||
* be too careful, so reserve this memory anyway.
|
||||
*/
|
||||
ram@17f00000 {
|
||||
reg = <0x17f00000 0x00100000>;
|
||||
no-map;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
35
arch/arm/boot/dts/ste-db9500.dtsi
Normal file
35
arch/arm/boot/dts/ste-db9500.dtsi
Normal file
@ -0,0 +1,35 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "ste-dbx5x0.dtsi"
|
||||
|
||||
/ {
|
||||
cpus {
|
||||
cpu@300 {
|
||||
/* cpufreq controls */
|
||||
operating-points = <1152000 0
|
||||
800000 0
|
||||
400000 0
|
||||
200000 0>;
|
||||
};
|
||||
};
|
||||
|
||||
reserved-memory {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
/*
|
||||
* Initial Secure Software ISSW memory
|
||||
*
|
||||
* This is probably only used if the kernel tries
|
||||
* to actually call into trustzone to run secure
|
||||
* applications, which the mainline kernel probably
|
||||
* will not do on this old chipset. But you can never
|
||||
* be too careful, so reserve this memory anyway.
|
||||
*/
|
||||
ram@17f00000 {
|
||||
reg = <0x17f00000 0x00100000>;
|
||||
no-map;
|
||||
};
|
||||
};
|
||||
};
|
@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include "ste-db8500.dtsi"
|
||||
#include "ste-db9500.dtsi"
|
||||
#include "ste-href-ab8500.dtsi"
|
||||
#include "ste-href-family-pinctrl.dtsi"
|
||||
|
||||
|
@ -33,9 +33,9 @@
|
||||
* during TX anyway and that it only controls drive enable DE
|
||||
* line. Hence, the RX is always enabled here.
|
||||
*/
|
||||
rs485-rx-en {
|
||||
rs485-rx-en-hog {
|
||||
gpio-hog;
|
||||
gpios = <8 GPIO_ACTIVE_HIGH>;
|
||||
gpios = <8 0>;
|
||||
output-low;
|
||||
line-name = "rs485-rx-en";
|
||||
};
|
||||
@ -61,9 +61,9 @@
|
||||
* order to reset the Hub when USB bus is powered down, but
|
||||
* so far there is no such functionality.
|
||||
*/
|
||||
usb-hub {
|
||||
usb-hub-hog {
|
||||
gpio-hog;
|
||||
gpios = <2 GPIO_ACTIVE_HIGH>;
|
||||
gpios = <2 0>;
|
||||
output-high;
|
||||
line-name = "usb-hub-reset";
|
||||
};
|
||||
@ -87,6 +87,12 @@
|
||||
};
|
||||
};
|
||||
|
||||
&i2c4 {
|
||||
touchscreen@49 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
&i2c5 { /* TP7/TP8 */
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c5_pins_a>;
|
||||
@ -104,7 +110,7 @@
|
||||
* are used for on-board microSD slot instead.
|
||||
*/
|
||||
/delete-property/broken-cd;
|
||||
cd-gpios = <&gpioi 10 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
|
||||
cd-gpios = <&gpioi 10 GPIO_ACTIVE_HIGH>;
|
||||
disable-wp;
|
||||
};
|
||||
|
||||
|
@ -43,9 +43,9 @@
|
||||
* in order to turn on port power when USB bus is powered up, but so
|
||||
* far there is no such functionality.
|
||||
*/
|
||||
usb-port-power {
|
||||
usb-port-power-hog {
|
||||
gpio-hog;
|
||||
gpios = <13 GPIO_ACTIVE_LOW>;
|
||||
gpios = <13 0>;
|
||||
output-low;
|
||||
line-name = "usb-port-power";
|
||||
};
|
||||
|
@ -390,7 +390,8 @@
|
||||
pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
|
||||
pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
|
||||
pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
|
||||
broken-cd;
|
||||
cd-gpios = <&gpiog 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
|
||||
disable-wp;
|
||||
st,sig-dir;
|
||||
st,neg-edge;
|
||||
st,use-ckin;
|
||||
|
@ -110,7 +110,7 @@
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&gmac_rgmii_pins>;
|
||||
phy-handle = <&phy1>;
|
||||
phy-mode = "rgmii";
|
||||
phy-mode = "rgmii-id";
|
||||
phy-supply = <®_gmac_3v3>;
|
||||
status = "okay";
|
||||
};
|
||||
|
12
arch/arm/include/asm/kexec-internal.h
Normal file
12
arch/arm/include/asm/kexec-internal.h
Normal file
@ -0,0 +1,12 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef _ARM_KEXEC_INTERNAL_H
|
||||
#define _ARM_KEXEC_INTERNAL_H
|
||||
|
||||
struct kexec_relocate_data {
|
||||
unsigned long kexec_start_address;
|
||||
unsigned long kexec_indirection_page;
|
||||
unsigned long kexec_mach_type;
|
||||
unsigned long kexec_r2;
|
||||
};
|
||||
|
||||
#endif
|
@ -149,7 +149,34 @@
|
||||
|
||||
.align
|
||||
99: .word .
|
||||
#if defined(ZIMAGE)
|
||||
.word . + 4
|
||||
/*
|
||||
* Storage for the state maintained by the macro.
|
||||
*
|
||||
* In the kernel proper, this data is located in arch/arm/mach-tegra/tegra.c.
|
||||
* That's because this header is included from multiple files, and we only
|
||||
* want a single copy of the data. In particular, the UART probing code above
|
||||
* assumes it's running using physical addresses. This is true when this file
|
||||
* is included from head.o, but not when included from debug.o. So we need
|
||||
* to share the probe results between the two copies, rather than having
|
||||
* to re-run the probing again later.
|
||||
*
|
||||
* In the decompressor, we put the storage right here, since common.c
|
||||
* isn't included in the decompressor build. This storage data gets put in
|
||||
* .text even though it's really data, since .data is discarded from the
|
||||
* decompressor. Luckily, .text is writeable in the decompressor, unless
|
||||
* CONFIG_ZBOOT_ROM. That dependency is handled in arch/arm/Kconfig.debug.
|
||||
*/
|
||||
/* Debug UART initialization required */
|
||||
.word 1
|
||||
/* Debug UART physical address */
|
||||
.word 0
|
||||
/* Debug UART virtual address */
|
||||
.word 0
|
||||
#else
|
||||
.word tegra_uart_config
|
||||
#endif
|
||||
.ltorg
|
||||
|
||||
/* Load previously selected UART address */
|
||||
@ -189,30 +216,3 @@
|
||||
|
||||
.macro waituarttxrdy,rd,rx
|
||||
.endm
|
||||
|
||||
/*
|
||||
* Storage for the state maintained by the macros above.
|
||||
*
|
||||
* In the kernel proper, this data is located in arch/arm/mach-tegra/tegra.c.
|
||||
* That's because this header is included from multiple files, and we only
|
||||
* want a single copy of the data. In particular, the UART probing code above
|
||||
* assumes it's running using physical addresses. This is true when this file
|
||||
* is included from head.o, but not when included from debug.o. So we need
|
||||
* to share the probe results between the two copies, rather than having
|
||||
* to re-run the probing again later.
|
||||
*
|
||||
* In the decompressor, we put the symbol/storage right here, since common.c
|
||||
* isn't included in the decompressor build. This symbol gets put in .text
|
||||
* even though it's really data, since .data is discarded from the
|
||||
* decompressor. Luckily, .text is writeable in the decompressor, unless
|
||||
* CONFIG_ZBOOT_ROM. That dependency is handled in arch/arm/Kconfig.debug.
|
||||
*/
|
||||
#if defined(ZIMAGE)
|
||||
tegra_uart_config:
|
||||
/* Debug UART initialization required */
|
||||
.word 1
|
||||
/* Debug UART physical address */
|
||||
.word 0
|
||||
/* Debug UART virtual address */
|
||||
.word 0
|
||||
#endif
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include <linux/mm.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/kexec-internal.h>
|
||||
#include <asm/glue-df.h>
|
||||
#include <asm/glue-pf.h>
|
||||
#include <asm/mach/arch.h>
|
||||
@ -170,5 +171,9 @@ int main(void)
|
||||
DEFINE(MPU_RGN_PRBAR, offsetof(struct mpu_rgn, prbar));
|
||||
DEFINE(MPU_RGN_PRLAR, offsetof(struct mpu_rgn, prlar));
|
||||
#endif
|
||||
DEFINE(KEXEC_START_ADDR, offsetof(struct kexec_relocate_data, kexec_start_address));
|
||||
DEFINE(KEXEC_INDIR_PAGE, offsetof(struct kexec_relocate_data, kexec_indirection_page));
|
||||
DEFINE(KEXEC_MACH_TYPE, offsetof(struct kexec_relocate_data, kexec_mach_type));
|
||||
DEFINE(KEXEC_R2, offsetof(struct kexec_relocate_data, kexec_r2));
|
||||
return 0;
|
||||
}
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include <linux/of_fdt.h>
|
||||
#include <asm/mmu_context.h>
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/kexec-internal.h>
|
||||
#include <asm/fncpy.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/smp_plat.h>
|
||||
@ -22,11 +23,6 @@
|
||||
extern void relocate_new_kernel(void);
|
||||
extern const unsigned int relocate_new_kernel_size;
|
||||
|
||||
extern unsigned long kexec_start_address;
|
||||
extern unsigned long kexec_indirection_page;
|
||||
extern unsigned long kexec_mach_type;
|
||||
extern unsigned long kexec_boot_atags;
|
||||
|
||||
static atomic_t waiting_for_crash_ipi;
|
||||
|
||||
/*
|
||||
@ -159,6 +155,7 @@ void (*kexec_reinit)(void);
|
||||
void machine_kexec(struct kimage *image)
|
||||
{
|
||||
unsigned long page_list, reboot_entry_phys;
|
||||
struct kexec_relocate_data *data;
|
||||
void (*reboot_entry)(void);
|
||||
void *reboot_code_buffer;
|
||||
|
||||
@ -174,18 +171,17 @@ void machine_kexec(struct kimage *image)
|
||||
|
||||
reboot_code_buffer = page_address(image->control_code_page);
|
||||
|
||||
/* Prepare parameters for reboot_code_buffer*/
|
||||
set_kernel_text_rw();
|
||||
kexec_start_address = image->start;
|
||||
kexec_indirection_page = page_list;
|
||||
kexec_mach_type = machine_arch_type;
|
||||
kexec_boot_atags = image->arch.kernel_r2;
|
||||
|
||||
/* copy our kernel relocation code to the control code page */
|
||||
reboot_entry = fncpy(reboot_code_buffer,
|
||||
&relocate_new_kernel,
|
||||
relocate_new_kernel_size);
|
||||
|
||||
data = reboot_code_buffer + relocate_new_kernel_size;
|
||||
data->kexec_start_address = image->start;
|
||||
data->kexec_indirection_page = page_list;
|
||||
data->kexec_mach_type = machine_arch_type;
|
||||
data->kexec_r2 = image->arch.kernel_r2;
|
||||
|
||||
/* get the identity mapping physical address for the reboot code */
|
||||
reboot_entry_phys = virt_to_idmap(reboot_entry);
|
||||
|
||||
|
@ -5,14 +5,16 @@
|
||||
|
||||
#include <linux/linkage.h>
|
||||
#include <asm/assembler.h>
|
||||
#include <asm/asm-offsets.h>
|
||||
#include <asm/kexec.h>
|
||||
|
||||
.align 3 /* not needed for this code, but keeps fncpy() happy */
|
||||
|
||||
ENTRY(relocate_new_kernel)
|
||||
|
||||
ldr r0,kexec_indirection_page
|
||||
ldr r1,kexec_start_address
|
||||
adr r7, relocate_new_kernel_end
|
||||
ldr r0, [r7, #KEXEC_INDIR_PAGE]
|
||||
ldr r1, [r7, #KEXEC_START_ADDR]
|
||||
|
||||
/*
|
||||
* If there is no indirection page (we are doing crashdumps)
|
||||
@ -57,34 +59,16 @@ ENTRY(relocate_new_kernel)
|
||||
|
||||
2:
|
||||
/* Jump to relocated kernel */
|
||||
mov lr,r1
|
||||
mov r0,#0
|
||||
ldr r1,kexec_mach_type
|
||||
ldr r2,kexec_boot_atags
|
||||
ARM( ret lr )
|
||||
THUMB( bx lr )
|
||||
|
||||
.align
|
||||
|
||||
.globl kexec_start_address
|
||||
kexec_start_address:
|
||||
.long 0x0
|
||||
|
||||
.globl kexec_indirection_page
|
||||
kexec_indirection_page:
|
||||
.long 0x0
|
||||
|
||||
.globl kexec_mach_type
|
||||
kexec_mach_type:
|
||||
.long 0x0
|
||||
|
||||
/* phy addr of the atags for the new kernel */
|
||||
.globl kexec_boot_atags
|
||||
kexec_boot_atags:
|
||||
.long 0x0
|
||||
mov lr, r1
|
||||
mov r0, #0
|
||||
ldr r1, [r7, #KEXEC_MACH_TYPE]
|
||||
ldr r2, [r7, #KEXEC_R2]
|
||||
ARM( ret lr )
|
||||
THUMB( bx lr )
|
||||
|
||||
ENDPROC(relocate_new_kernel)
|
||||
|
||||
.align 3
|
||||
relocate_new_kernel_end:
|
||||
|
||||
.globl relocate_new_kernel_size
|
||||
|
@ -693,18 +693,20 @@ struct page *get_signal_page(void)
|
||||
|
||||
addr = page_address(page);
|
||||
|
||||
/* Poison the entire page */
|
||||
memset32(addr, __opcode_to_mem_arm(0xe7fddef1),
|
||||
PAGE_SIZE / sizeof(u32));
|
||||
|
||||
/* Give the signal return code some randomness */
|
||||
offset = 0x200 + (get_random_int() & 0x7fc);
|
||||
signal_return_offset = offset;
|
||||
|
||||
/*
|
||||
* Copy signal return handlers into the vector page, and
|
||||
* set sigreturn to be a pointer to these.
|
||||
*/
|
||||
/* Copy signal return handlers into the page */
|
||||
memcpy(addr + offset, sigreturn_codes, sizeof(sigreturn_codes));
|
||||
|
||||
ptr = (unsigned long)addr + offset;
|
||||
flush_icache_range(ptr, ptr + sizeof(sigreturn_codes));
|
||||
/* Flush out all instructions in this page */
|
||||
ptr = (unsigned long)addr;
|
||||
flush_icache_range(ptr, ptr + PAGE_SIZE);
|
||||
|
||||
return page;
|
||||
}
|
||||
|
@ -65,15 +65,15 @@ dc21285_read_config(struct pci_bus *bus, unsigned int devfn, int where,
|
||||
if (addr)
|
||||
switch (size) {
|
||||
case 1:
|
||||
asm("ldrb %0, [%1, %2]"
|
||||
asm volatile("ldrb %0, [%1, %2]"
|
||||
: "=r" (v) : "r" (addr), "r" (where) : "cc");
|
||||
break;
|
||||
case 2:
|
||||
asm("ldrh %0, [%1, %2]"
|
||||
asm volatile("ldrh %0, [%1, %2]"
|
||||
: "=r" (v) : "r" (addr), "r" (where) : "cc");
|
||||
break;
|
||||
case 4:
|
||||
asm("ldr %0, [%1, %2]"
|
||||
asm volatile("ldr %0, [%1, %2]"
|
||||
: "=r" (v) : "r" (addr), "r" (where) : "cc");
|
||||
break;
|
||||
}
|
||||
@ -99,17 +99,17 @@ dc21285_write_config(struct pci_bus *bus, unsigned int devfn, int where,
|
||||
if (addr)
|
||||
switch (size) {
|
||||
case 1:
|
||||
asm("strb %0, [%1, %2]"
|
||||
asm volatile("strb %0, [%1, %2]"
|
||||
: : "r" (value), "r" (addr), "r" (where)
|
||||
: "cc");
|
||||
break;
|
||||
case 2:
|
||||
asm("strh %0, [%1, %2]"
|
||||
asm volatile("strh %0, [%1, %2]"
|
||||
: : "r" (value), "r" (addr), "r" (where)
|
||||
: "cc");
|
||||
break;
|
||||
case 4:
|
||||
asm("str %0, [%1, %2]"
|
||||
asm volatile("str %0, [%1, %2]"
|
||||
: : "r" (value), "r" (addr), "r" (where)
|
||||
: "cc");
|
||||
break;
|
||||
|
@ -67,6 +67,7 @@
|
||||
#define MX6Q_CCM_CCR 0x0
|
||||
|
||||
.align 3
|
||||
.arm
|
||||
|
||||
.macro sync_l2_cache
|
||||
|
||||
|
@ -203,6 +203,8 @@ static int osk_tps_setup(struct i2c_client *client, void *context)
|
||||
*/
|
||||
gpio_request(OSK_TPS_GPIO_USB_PWR_EN, "n_vbus_en");
|
||||
gpio_direction_output(OSK_TPS_GPIO_USB_PWR_EN, 1);
|
||||
/* Free the GPIO again as the driver will request it */
|
||||
gpio_free(OSK_TPS_GPIO_USB_PWR_EN);
|
||||
|
||||
/* Set GPIO 2 high so LED D3 is off by default */
|
||||
tps65010_set_gpio_out_value(GPIO2, HIGH);
|
||||
|
@ -17,11 +17,10 @@ config ARCH_OMAP3
|
||||
bool "TI OMAP3"
|
||||
depends on ARCH_MULTI_V7
|
||||
select ARCH_OMAP2PLUS
|
||||
select ARM_CPU_SUSPEND if PM
|
||||
select ARM_CPU_SUSPEND
|
||||
select OMAP_HWMOD
|
||||
select OMAP_INTERCONNECT
|
||||
select PM_OPP if PM
|
||||
select PM if CPU_IDLE
|
||||
select PM_OPP
|
||||
select SOC_HAS_OMAP2_SDRC
|
||||
select ARM_ERRATA_430973
|
||||
|
||||
@ -30,7 +29,7 @@ config ARCH_OMAP4
|
||||
depends on ARCH_MULTI_V7
|
||||
select ARCH_OMAP2PLUS
|
||||
select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
|
||||
select ARM_CPU_SUSPEND if PM
|
||||
select ARM_CPU_SUSPEND
|
||||
select ARM_ERRATA_720789
|
||||
select ARM_GIC
|
||||
select HAVE_ARM_SCU if SMP
|
||||
@ -40,7 +39,7 @@ config ARCH_OMAP4
|
||||
select OMAP_INTERCONNECT_BARRIER
|
||||
select PL310_ERRATA_588369 if CACHE_L2X0
|
||||
select PL310_ERRATA_727915 if CACHE_L2X0
|
||||
select PM_OPP if PM
|
||||
select PM_OPP
|
||||
select PM if CPU_IDLE
|
||||
select ARM_ERRATA_754322
|
||||
select ARM_ERRATA_775420
|
||||
@ -50,7 +49,7 @@ config SOC_OMAP5
|
||||
bool "TI OMAP5"
|
||||
depends on ARCH_MULTI_V7
|
||||
select ARCH_OMAP2PLUS
|
||||
select ARM_CPU_SUSPEND if PM
|
||||
select ARM_CPU_SUSPEND
|
||||
select ARM_GIC
|
||||
select HAVE_ARM_SCU if SMP
|
||||
select HAVE_ARM_ARCH_TIMER
|
||||
@ -58,14 +57,14 @@ config SOC_OMAP5
|
||||
select OMAP_HWMOD
|
||||
select OMAP_INTERCONNECT
|
||||
select OMAP_INTERCONNECT_BARRIER
|
||||
select PM_OPP if PM
|
||||
select PM_OPP
|
||||
select ZONE_DMA if ARM_LPAE
|
||||
|
||||
config SOC_AM33XX
|
||||
bool "TI AM33XX"
|
||||
depends on ARCH_MULTI_V7
|
||||
select ARCH_OMAP2PLUS
|
||||
select ARM_CPU_SUSPEND if PM
|
||||
select ARM_CPU_SUSPEND
|
||||
|
||||
config SOC_AM43XX
|
||||
bool "TI AM43x"
|
||||
@ -79,13 +78,13 @@ config SOC_AM43XX
|
||||
select ARM_ERRATA_754322
|
||||
select ARM_ERRATA_775420
|
||||
select OMAP_INTERCONNECT
|
||||
select ARM_CPU_SUSPEND if PM
|
||||
select ARM_CPU_SUSPEND
|
||||
|
||||
config SOC_DRA7XX
|
||||
bool "TI DRA7XX"
|
||||
depends on ARCH_MULTI_V7
|
||||
select ARCH_OMAP2PLUS
|
||||
select ARM_CPU_SUSPEND if PM
|
||||
select ARM_CPU_SUSPEND
|
||||
select ARM_GIC
|
||||
select HAVE_ARM_SCU if SMP
|
||||
select HAVE_ARM_ARCH_TIMER
|
||||
@ -94,7 +93,7 @@ config SOC_DRA7XX
|
||||
select OMAP_HWMOD
|
||||
select OMAP_INTERCONNECT
|
||||
select OMAP_INTERCONNECT_BARRIER
|
||||
select PM_OPP if PM
|
||||
select PM_OPP
|
||||
select ZONE_DMA if ARM_LPAE
|
||||
select PINCTRL_TI_IODELAY if OF && PINCTRL
|
||||
|
||||
@ -112,9 +111,11 @@ config ARCH_OMAP2PLUS
|
||||
select OMAP_DM_TIMER
|
||||
select OMAP_GPMC
|
||||
select PINCTRL
|
||||
select PM_GENERIC_DOMAINS if PM
|
||||
select PM_GENERIC_DOMAINS_OF if PM
|
||||
select PM
|
||||
select PM_GENERIC_DOMAINS
|
||||
select PM_GENERIC_DOMAINS_OF
|
||||
select RESET_CONTROLLER
|
||||
select SIMPLE_PM_BUS
|
||||
select SOC_BUS
|
||||
select TI_SYSC
|
||||
select OMAP_IRQCHIP
|
||||
@ -140,7 +141,6 @@ config ARCH_OMAP2PLUS_TYPICAL
|
||||
select I2C_OMAP
|
||||
select MENELAUS if ARCH_OMAP2
|
||||
select NEON if CPU_V7
|
||||
select PM
|
||||
select REGULATOR
|
||||
select REGULATOR_FIXED_VOLTAGE
|
||||
select TWL4030_CORE if ARCH_OMAP3 || ARCH_OMAP4
|
||||
|
@ -151,10 +151,10 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
|
||||
(cx->mpu_logic_state == PWRDM_POWER_OFF);
|
||||
|
||||
/* Enter broadcast mode for periodic timers */
|
||||
tick_broadcast_enable();
|
||||
RCU_NONIDLE(tick_broadcast_enable());
|
||||
|
||||
/* Enter broadcast mode for one-shot timers */
|
||||
tick_broadcast_enter();
|
||||
RCU_NONIDLE(tick_broadcast_enter());
|
||||
|
||||
/*
|
||||
* Call idle CPU PM enter notifier chain so that
|
||||
@ -166,7 +166,7 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
|
||||
|
||||
if (dev->cpu == 0) {
|
||||
pwrdm_set_logic_retst(mpu_pd, cx->mpu_logic_state);
|
||||
omap_set_pwrdm_state(mpu_pd, cx->mpu_state);
|
||||
RCU_NONIDLE(omap_set_pwrdm_state(mpu_pd, cx->mpu_state));
|
||||
|
||||
/*
|
||||
* Call idle CPU cluster PM enter notifier chain
|
||||
@ -178,7 +178,7 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
|
||||
index = 0;
|
||||
cx = state_ptr + index;
|
||||
pwrdm_set_logic_retst(mpu_pd, cx->mpu_logic_state);
|
||||
omap_set_pwrdm_state(mpu_pd, cx->mpu_state);
|
||||
RCU_NONIDLE(omap_set_pwrdm_state(mpu_pd, cx->mpu_state));
|
||||
mpuss_can_lose_context = 0;
|
||||
}
|
||||
}
|
||||
@ -194,9 +194,9 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
|
||||
mpuss_can_lose_context)
|
||||
gic_dist_disable();
|
||||
|
||||
clkdm_deny_idle(cpu_clkdm[1]);
|
||||
omap_set_pwrdm_state(cpu_pd[1], PWRDM_POWER_ON);
|
||||
clkdm_allow_idle(cpu_clkdm[1]);
|
||||
RCU_NONIDLE(clkdm_deny_idle(cpu_clkdm[1]));
|
||||
RCU_NONIDLE(omap_set_pwrdm_state(cpu_pd[1], PWRDM_POWER_ON));
|
||||
RCU_NONIDLE(clkdm_allow_idle(cpu_clkdm[1]));
|
||||
|
||||
if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD) &&
|
||||
mpuss_can_lose_context) {
|
||||
@ -222,7 +222,7 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
|
||||
cpu_pm_exit();
|
||||
|
||||
cpu_pm_out:
|
||||
tick_broadcast_exit();
|
||||
RCU_NONIDLE(tick_broadcast_exit());
|
||||
|
||||
fail:
|
||||
cpuidle_coupled_parallel_barrier(dev, &abort_barrier);
|
||||
|
@ -522,6 +522,7 @@ static struct of_dev_auxdata omap_auxdata_lookup[] = {
|
||||
&dra7_ipu1_dsp_iommu_pdata),
|
||||
#endif
|
||||
/* Common auxdata */
|
||||
OF_DEV_AUXDATA("simple-pm-bus", 0, NULL, omap_auxdata_lookup),
|
||||
OF_DEV_AUXDATA("ti,sysc", 0, NULL, &ti_sysc_pdata),
|
||||
OF_DEV_AUXDATA("pinctrl-single", 0, NULL, &pcs_pdata),
|
||||
OF_DEV_AUXDATA("ti,omap-prm-inst", 0, NULL, &ti_prm_pdata),
|
||||
|
@ -280,8 +280,6 @@
|
||||
"timing-adjustment";
|
||||
rx-fifo-depth = <4096>;
|
||||
tx-fifo-depth = <2048>;
|
||||
resets = <&reset RESET_ETHERNET>;
|
||||
reset-names = "stmmaceth";
|
||||
power-domains = <&pwrc PWRC_AXG_ETHERNET_MEM_ID>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
@ -224,8 +224,6 @@
|
||||
"timing-adjustment";
|
||||
rx-fifo-depth = <4096>;
|
||||
tx-fifo-depth = <2048>;
|
||||
resets = <&reset RESET_ETHERNET>;
|
||||
reset-names = "stmmaceth";
|
||||
status = "disabled";
|
||||
|
||||
mdio0: mdio {
|
||||
@ -2390,7 +2388,7 @@
|
||||
interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dr_mode = "host";
|
||||
snps,dis_u2_susphy_quirk;
|
||||
snps,quirk-frame-length-adjustment;
|
||||
snps,quirk-frame-length-adjustment = <0x20>;
|
||||
snps,parkmode-disable-ss-quirk;
|
||||
};
|
||||
};
|
||||
|
@ -13,7 +13,6 @@
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/power/meson-gxbb-power.h>
|
||||
#include <dt-bindings/reset/amlogic,meson-gxbb-reset.h>
|
||||
#include <dt-bindings/thermal/thermal.h>
|
||||
|
||||
/ {
|
||||
@ -576,8 +575,6 @@
|
||||
interrupt-names = "macirq";
|
||||
rx-fifo-depth = <4096>;
|
||||
tx-fifo-depth = <2048>;
|
||||
resets = <&reset RESET_ETHERNET>;
|
||||
reset-names = "stmmaceth";
|
||||
power-domains = <&pwrc PWRC_GXBB_ETHERNET_MEM_ID>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
@ -52,7 +52,7 @@
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
|
||||
gpio = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
|
||||
gpio = <&gpio_ao GPIOAO_3 GPIO_OPEN_DRAIN>;
|
||||
enable-active-high;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
@ -4,11 +4,16 @@
|
||||
*/
|
||||
usb {
|
||||
compatible = "simple-bus";
|
||||
dma-ranges;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x0 0x0 0x0 0x68500000 0x0 0x00400000>;
|
||||
|
||||
/*
|
||||
* Internally, USB bus to the interconnect can only address up
|
||||
* to 40-bit
|
||||
*/
|
||||
dma-ranges = <0 0 0 0 0x100 0x0>;
|
||||
|
||||
usbphy0: usb-phy@0 {
|
||||
compatible = "brcm,sr-usb-combo-phy";
|
||||
reg = <0x0 0x00000000 0x0 0x100>;
|
||||
|
@ -101,7 +101,7 @@
|
||||
reboot {
|
||||
compatible ="syscon-reboot";
|
||||
regmap = <&rst>;
|
||||
offset = <0xb0>;
|
||||
offset = <0>;
|
||||
mask = <0x02>;
|
||||
};
|
||||
|
||||
|
@ -385,7 +385,7 @@
|
||||
|
||||
dcfg: dcfg@1ee0000 {
|
||||
compatible = "fsl,ls1046a-dcfg", "syscon";
|
||||
reg = <0x0 0x1ee0000 0x0 0x10000>;
|
||||
reg = <0x0 0x1ee0000 0x0 0x1000>;
|
||||
big-endian;
|
||||
};
|
||||
|
||||
|
@ -253,7 +253,7 @@
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
spba: bus@30000000 {
|
||||
spba: spba-bus@30000000 {
|
||||
compatible = "fsl,spba-bus", "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
@ -266,7 +266,7 @@
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
gpio-ranges = <&iomuxc 0 56 26>, <&iomuxc 0 144 4>;
|
||||
gpio-ranges = <&iomuxc 0 56 26>, <&iomuxc 26 144 4>;
|
||||
};
|
||||
|
||||
gpio4: gpio@30230000 {
|
||||
|
@ -415,7 +415,9 @@
|
||||
&gcc {
|
||||
protected-clocks = <GCC_QSPI_CORE_CLK>,
|
||||
<GCC_QSPI_CORE_CLK_SRC>,
|
||||
<GCC_QSPI_CNOC_PERIPH_AHB_CLK>;
|
||||
<GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
|
||||
<GCC_LPASS_Q6_AXI_CLK>,
|
||||
<GCC_LPASS_SWAY_CLK>;
|
||||
};
|
||||
|
||||
&gpu {
|
||||
|
@ -302,7 +302,9 @@
|
||||
&gcc {
|
||||
protected-clocks = <GCC_QSPI_CORE_CLK>,
|
||||
<GCC_QSPI_CORE_CLK_SRC>,
|
||||
<GCC_QSPI_CNOC_PERIPH_AHB_CLK>;
|
||||
<GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
|
||||
<GCC_LPASS_Q6_AXI_CLK>,
|
||||
<GCC_LPASS_SWAY_CLK>;
|
||||
};
|
||||
|
||||
&gpu {
|
||||
@ -320,6 +322,8 @@
|
||||
&i2c3 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
/* Overwrite pinctrl-0 from sdm845.dtsi */
|
||||
pinctrl-0 = <&qup_i2c3_default &i2c3_hid_active>;
|
||||
|
||||
tsel: hid@15 {
|
||||
compatible = "hid-over-i2c";
|
||||
@ -327,9 +331,6 @@
|
||||
hid-descr-addr = <0x1>;
|
||||
|
||||
interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c3_hid_active>;
|
||||
};
|
||||
|
||||
tsc2: hid@2c {
|
||||
@ -338,11 +339,6 @@
|
||||
hid-descr-addr = <0x20>;
|
||||
|
||||
interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c3_hid_active>;
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -1097,7 +1097,7 @@
|
||||
vopl_mmu: iommu@ff470f00 {
|
||||
compatible = "rockchip,iommu";
|
||||
reg = <0x0 0xff470f00 0x0 0x100>;
|
||||
interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "vopl_mmu";
|
||||
clocks = <&cru ACLK_VOPL>, <&cru HCLK_VOPL>;
|
||||
clock-names = "aclk", "iface";
|
||||
|
@ -114,6 +114,10 @@
|
||||
cpu-supply = <&vdd_arm>;
|
||||
};
|
||||
|
||||
&display_subsystem {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&gmac2io {
|
||||
assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
|
||||
assigned-clock-parents = <&gmac_clk>, <&gmac_clk>;
|
||||
|
@ -790,7 +790,6 @@
|
||||
&pcie0 {
|
||||
bus-scan-delay-ms = <1000>;
|
||||
ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
|
||||
max-link-speed = <2>;
|
||||
num-lanes = <4>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pcie_clkreqn_cpm>;
|
||||
|
@ -234,6 +234,7 @@
|
||||
reg = <0x0 0xf8000000 0x0 0x2000000>,
|
||||
<0x0 0xfd000000 0x0 0x1000000>;
|
||||
reg-names = "axi-base", "apb-base";
|
||||
device_type = "pci";
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
#interrupt-cells = <1>;
|
||||
@ -252,7 +253,6 @@
|
||||
<0 0 0 2 &pcie0_intc 1>,
|
||||
<0 0 0 3 &pcie0_intc 2>,
|
||||
<0 0 0 4 &pcie0_intc 3>;
|
||||
linux,pci-domain = <0>;
|
||||
max-link-speed = <1>;
|
||||
msi-map = <0x0 &its 0x0 0x1000>;
|
||||
phys = <&pcie_phy 0>, <&pcie_phy 1>,
|
||||
@ -1278,7 +1278,6 @@
|
||||
compatible = "rockchip,rk3399-vdec";
|
||||
reg = <0x0 0xff660000 0x0 0x400>;
|
||||
interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
interrupt-names = "vdpu";
|
||||
clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>,
|
||||
<&cru SCLK_VDU_CA>, <&cru SCLK_VDU_CORE>;
|
||||
clock-names = "axi", "ahb", "cabac", "core";
|
||||
|
@ -991,8 +991,6 @@ CONFIG_ARCH_TEGRA_210_SOC=y
|
||||
CONFIG_ARCH_TEGRA_186_SOC=y
|
||||
CONFIG_ARCH_TEGRA_194_SOC=y
|
||||
CONFIG_ARCH_TEGRA_234_SOC=y
|
||||
CONFIG_ARCH_K3_AM6_SOC=y
|
||||
CONFIG_ARCH_K3_J721E_SOC=y
|
||||
CONFIG_TI_SCI_PM_DOMAINS=y
|
||||
CONFIG_EXTCON_PTN5150=m
|
||||
CONFIG_EXTCON_USB_GPIO=y
|
||||
@ -1078,7 +1076,7 @@ CONFIG_INTERCONNECT=y
|
||||
CONFIG_INTERCONNECT_QCOM=y
|
||||
CONFIG_INTERCONNECT_QCOM_MSM8916=m
|
||||
CONFIG_INTERCONNECT_QCOM_OSM_L3=m
|
||||
CONFIG_INTERCONNECT_QCOM_SDM845=m
|
||||
CONFIG_INTERCONNECT_QCOM_SDM845=y
|
||||
CONFIG_INTERCONNECT_QCOM_SM8150=m
|
||||
CONFIG_INTERCONNECT_QCOM_SM8250=m
|
||||
CONFIG_EXT2_FS=y
|
||||
|
@ -247,11 +247,13 @@ static inline const void *__tag_set(const void *addr, u8 tag)
|
||||
|
||||
|
||||
/*
|
||||
* The linear kernel range starts at the bottom of the virtual address space.
|
||||
* Check whether an arbitrary address is within the linear map, which
|
||||
* lives in the [PAGE_OFFSET, PAGE_END) interval at the bottom of the
|
||||
* kernel's TTBR1 address range.
|
||||
*/
|
||||
#define __is_lm_address(addr) (((u64)(addr) & ~PAGE_OFFSET) < (PAGE_END - PAGE_OFFSET))
|
||||
#define __is_lm_address(addr) (((u64)(addr) - PAGE_OFFSET) < (PAGE_END - PAGE_OFFSET))
|
||||
|
||||
#define __lm_to_phys(addr) (((addr) & ~PAGE_OFFSET) + PHYS_OFFSET)
|
||||
#define __lm_to_phys(addr) (((addr) - PAGE_OFFSET) + PHYS_OFFSET)
|
||||
#define __kimg_to_phys(addr) ((addr) - kimage_voffset)
|
||||
|
||||
#define __virt_to_phys_nodebug(x) ({ \
|
||||
@ -330,7 +332,7 @@ static inline void *phys_to_virt(phys_addr_t x)
|
||||
#endif /* !CONFIG_SPARSEMEM_VMEMMAP || CONFIG_DEBUG_VIRTUAL */
|
||||
|
||||
#define virt_addr_valid(addr) ({ \
|
||||
__typeof__(addr) __addr = addr; \
|
||||
__typeof__(addr) __addr = __tag_reset(addr); \
|
||||
__is_lm_address(__addr) && pfn_valid(virt_to_pfn(__addr)); \
|
||||
})
|
||||
|
||||
|
@ -1396,8 +1396,9 @@ static void cpu_init_hyp_mode(void)
|
||||
* Calculate the raw per-cpu offset without a translation from the
|
||||
* kernel's mapping to the linear mapping, and store it in tpidr_el2
|
||||
* so that we can use adr_l to access per-cpu variables in EL2.
|
||||
* Also drop the KASAN tag which gets in the way...
|
||||
*/
|
||||
params->tpidr_el2 = (unsigned long)this_cpu_ptr_nvhe_sym(__per_cpu_start) -
|
||||
params->tpidr_el2 = (unsigned long)kasan_reset_tag(this_cpu_ptr_nvhe_sym(__per_cpu_start)) -
|
||||
(unsigned long)kvm_ksym_ref(CHOOSE_NVHE_SYM(__per_cpu_start));
|
||||
|
||||
params->mair_el2 = read_sysreg(mair_el1);
|
||||
|
@ -47,6 +47,8 @@ __invalid:
|
||||
b .
|
||||
|
||||
/*
|
||||
* Only uses x0..x3 so as to not clobber callee-saved SMCCC registers.
|
||||
*
|
||||
* x0: SMCCC function ID
|
||||
* x1: struct kvm_nvhe_init_params PA
|
||||
*/
|
||||
@ -70,9 +72,9 @@ __do_hyp_init:
|
||||
eret
|
||||
|
||||
1: mov x0, x1
|
||||
mov x4, lr
|
||||
bl ___kvm_hyp_init
|
||||
mov lr, x4
|
||||
mov x3, lr
|
||||
bl ___kvm_hyp_init // Clobbers x0..x2
|
||||
mov lr, x3
|
||||
|
||||
/* Hello, World! */
|
||||
mov x0, #SMCCC_RET_SUCCESS
|
||||
@ -82,8 +84,8 @@ SYM_CODE_END(__kvm_hyp_init)
|
||||
/*
|
||||
* Initialize the hypervisor in EL2.
|
||||
*
|
||||
* Only uses x0..x3 so as to not clobber callee-saved SMCCC registers
|
||||
* and leave x4 for the caller.
|
||||
* Only uses x0..x2 so as to not clobber callee-saved SMCCC registers
|
||||
* and leave x3 for the caller.
|
||||
*
|
||||
* x0: struct kvm_nvhe_init_params PA
|
||||
*/
|
||||
@ -112,9 +114,9 @@ alternative_else_nop_endif
|
||||
/*
|
||||
* Set the PS bits in TCR_EL2.
|
||||
*/
|
||||
ldr x1, [x0, #NVHE_INIT_TCR_EL2]
|
||||
tcr_compute_pa_size x1, #TCR_EL2_PS_SHIFT, x2, x3
|
||||
msr tcr_el2, x1
|
||||
ldr x0, [x0, #NVHE_INIT_TCR_EL2]
|
||||
tcr_compute_pa_size x0, #TCR_EL2_PS_SHIFT, x1, x2
|
||||
msr tcr_el2, x0
|
||||
|
||||
isb
|
||||
|
||||
@ -193,7 +195,7 @@ SYM_CODE_START_LOCAL(__kvm_hyp_init_cpu)
|
||||
|
||||
/* Enable MMU, set vectors and stack. */
|
||||
mov x0, x28
|
||||
bl ___kvm_hyp_init // Clobbers x0..x3
|
||||
bl ___kvm_hyp_init // Clobbers x0..x2
|
||||
|
||||
/* Leave idmap. */
|
||||
mov x0, x29
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user