Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
No conflicts. Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
72d044e4bf
|
@ -92,7 +92,8 @@ Triggers can be set on more than one psi metric and more than one trigger
|
||||||
for the same psi metric can be specified. However for each trigger a separate
|
for the same psi metric can be specified. However for each trigger a separate
|
||||||
file descriptor is required to be able to poll it separately from others,
|
file descriptor is required to be able to poll it separately from others,
|
||||||
therefore for each trigger a separate open() syscall should be made even
|
therefore for each trigger a separate open() syscall should be made even
|
||||||
when opening the same psi interface file.
|
when opening the same psi interface file. Write operations to a file descriptor
|
||||||
|
with an already existing psi trigger will fail with EBUSY.
|
||||||
|
|
||||||
Monitors activate only when system enters stall state for the monitored
|
Monitors activate only when system enters stall state for the monitored
|
||||||
psi metric and deactivates upon exit from the stall state. While system is
|
psi metric and deactivates upon exit from the stall state. While system is
|
||||||
|
|
|
@ -7,7 +7,9 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
title: Analogix ANX7814 SlimPort (Full-HD Transmitter)
|
title: Analogix ANX7814 SlimPort (Full-HD Transmitter)
|
||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Enric Balletbo i Serra <enric.balletbo@collabora.com>
|
- Andrzej Hajda <andrzej.hajda@intel.com>
|
||||||
|
- Neil Armstrong <narmstrong@baylibre.com>
|
||||||
|
- Robert Foss <robert.foss@linaro.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
|
|
@ -8,7 +8,6 @@ title: ChromeOS EC ANX7688 HDMI to DP Converter through Type-C Port
|
||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Nicolas Boichat <drinkcat@chromium.org>
|
- Nicolas Boichat <drinkcat@chromium.org>
|
||||||
- Enric Balletbo i Serra <enric.balletbo@collabora.com>
|
|
||||||
|
|
||||||
description: |
|
description: |
|
||||||
ChromeOS EC ANX7688 is a display bridge that converts HDMI 2.0 to
|
ChromeOS EC ANX7688 is a display bridge that converts HDMI 2.0 to
|
||||||
|
|
|
@ -8,7 +8,6 @@ title: MIPI DSI to eDP Video Format Converter Device Tree Bindings
|
||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Nicolas Boichat <drinkcat@chromium.org>
|
- Nicolas Boichat <drinkcat@chromium.org>
|
||||||
- Enric Balletbo i Serra <enric.balletbo@collabora.com>
|
|
||||||
|
|
||||||
description: |
|
description: |
|
||||||
The PS8640 is a low power MIPI-to-eDP video format converter supporting
|
The PS8640 is a low power MIPI-to-eDP video format converter supporting
|
||||||
|
|
|
@ -6,15 +6,12 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
title: Asia Better Technology 3.0" (320x480 pixels) 24-bit IPS LCD panel
|
title: Asia Better Technology 3.0" (320x480 pixels) 24-bit IPS LCD panel
|
||||||
|
|
||||||
description: |
|
|
||||||
The panel must obey the rules for a SPI slave device as specified in
|
|
||||||
spi/spi-controller.yaml
|
|
||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Paul Cercueil <paul@crapouillou.net>
|
- Paul Cercueil <paul@crapouillou.net>
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: panel-common.yaml#
|
- $ref: panel-common.yaml#
|
||||||
|
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
|
|
@ -15,11 +15,9 @@ description: |
|
||||||
960 TFT source driver pins and 240 TFT gate driver pins, VCOM, VCOML and
|
960 TFT source driver pins and 240 TFT gate driver pins, VCOM, VCOML and
|
||||||
VCOMH outputs.
|
VCOMH outputs.
|
||||||
|
|
||||||
The panel must obey the rules for a SPI slave device as specified in
|
|
||||||
spi/spi-controller.yaml
|
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: panel-common.yaml#
|
- $ref: panel-common.yaml#
|
||||||
|
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
|
|
@ -6,15 +6,12 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
title: Innolux EJ030NA 3.0" (320x480 pixels) 24-bit TFT LCD panel
|
title: Innolux EJ030NA 3.0" (320x480 pixels) 24-bit TFT LCD panel
|
||||||
|
|
||||||
description: |
|
|
||||||
The panel must obey the rules for a SPI slave device as specified in
|
|
||||||
spi/spi-controller.yaml
|
|
||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Paul Cercueil <paul@crapouillou.net>
|
- Paul Cercueil <paul@crapouillou.net>
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: panel-common.yaml#
|
- $ref: panel-common.yaml#
|
||||||
|
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
|
|
@ -6,15 +6,12 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
title: King Display KD035G6-54NT 3.5" (320x240 pixels) 24-bit TFT LCD panel
|
title: King Display KD035G6-54NT 3.5" (320x240 pixels) 24-bit TFT LCD panel
|
||||||
|
|
||||||
description: |
|
|
||||||
The panel must obey the rules for a SPI slave device as specified in
|
|
||||||
spi/spi-controller.yaml
|
|
||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Paul Cercueil <paul@crapouillou.net>
|
- Paul Cercueil <paul@crapouillou.net>
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: panel-common.yaml#
|
- $ref: panel-common.yaml#
|
||||||
|
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
|
|
@ -6,15 +6,12 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
title: LG.Philips LB035Q02 Panel
|
title: LG.Philips LB035Q02 Panel
|
||||||
|
|
||||||
description: |
|
|
||||||
The panel must obey the rules for a SPI slave device as specified in
|
|
||||||
spi/spi-controller.yaml
|
|
||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Tomi Valkeinen <tomi.valkeinen@ti.com>
|
- Tomi Valkeinen <tomi.valkeinen@ti.com>
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: panel-common.yaml#
|
- $ref: panel-common.yaml#
|
||||||
|
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
|
|
@ -6,15 +6,12 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
title: Samsung LD9040 AMOLED LCD parallel RGB panel with SPI control bus
|
title: Samsung LD9040 AMOLED LCD parallel RGB panel with SPI control bus
|
||||||
|
|
||||||
description: |
|
|
||||||
The panel must obey the rules for a SPI slave device as specified in
|
|
||||||
spi/spi-controller.yaml
|
|
||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Andrzej Hajda <a.hajda@samsung.com>
|
- Andrzej Hajda <a.hajda@samsung.com>
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: panel-common.yaml#
|
- $ref: panel-common.yaml#
|
||||||
|
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
@ -63,8 +60,6 @@ examples:
|
||||||
|
|
||||||
lcd@0 {
|
lcd@0 {
|
||||||
compatible = "samsung,ld9040";
|
compatible = "samsung,ld9040";
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
|
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
vdd3-supply = <&ldo7_reg>;
|
vdd3-supply = <&ldo7_reg>;
|
||||||
|
|
|
@ -12,6 +12,7 @@ maintainers:
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: panel-common.yaml#
|
- $ref: panel-common.yaml#
|
||||||
- $ref: /schemas/leds/backlight/common.yaml#
|
- $ref: /schemas/leds/backlight/common.yaml#
|
||||||
|
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
|
|
@ -6,15 +6,12 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
title: Sitronix ST7789V RGB panel with SPI control bus
|
title: Sitronix ST7789V RGB panel with SPI control bus
|
||||||
|
|
||||||
description: |
|
|
||||||
The panel must obey the rules for a SPI slave device as specified in
|
|
||||||
spi/spi-controller.yaml
|
|
||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Maxime Ripard <mripard@kernel.org>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: panel-common.yaml#
|
- $ref: panel-common.yaml#
|
||||||
|
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
|
|
@ -6,15 +6,12 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
title: Sony ACX565AKM SDI Panel
|
title: Sony ACX565AKM SDI Panel
|
||||||
|
|
||||||
description: |
|
|
||||||
The panel must obey the rules for a SPI slave device as specified in
|
|
||||||
spi/spi-controller.yaml
|
|
||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Tomi Valkeinen <tomi.valkeinen@ti.com>
|
- Tomi Valkeinen <tomi.valkeinen@ti.com>
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: panel-common.yaml#
|
- $ref: panel-common.yaml#
|
||||||
|
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
|
|
@ -6,16 +6,13 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
title: Toppoly TD Panels
|
title: Toppoly TD Panels
|
||||||
|
|
||||||
description: |
|
|
||||||
The panel must obey the rules for a SPI slave device as specified in
|
|
||||||
spi/spi-controller.yaml
|
|
||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Marek Belisko <marek@goldelico.com>
|
- Marek Belisko <marek@goldelico.com>
|
||||||
- H. Nikolaus Schaller <hns@goldelico.com>
|
- H. Nikolaus Schaller <hns@goldelico.com>
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: panel-common.yaml#
|
- $ref: panel-common.yaml#
|
||||||
|
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
|
|
@ -26,14 +26,6 @@ properties:
|
||||||
clock-names:
|
clock-names:
|
||||||
const: hclk
|
const: hclk
|
||||||
|
|
||||||
pinctrl-0:
|
|
||||||
maxItems: 2
|
|
||||||
|
|
||||||
pinctrl-names:
|
|
||||||
const: default
|
|
||||||
description:
|
|
||||||
Switch the iomux for the HPD/I2C pins to HDMI function.
|
|
||||||
|
|
||||||
power-domains:
|
power-domains:
|
||||||
maxItems: 1
|
maxItems: 1
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,6 @@ title: ChromeOS EC USB Type-C cable and accessories detection
|
||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Benson Leung <bleung@chromium.org>
|
- Benson Leung <bleung@chromium.org>
|
||||||
- Enric Balletbo i Serra <enric.balletbo@collabora.com>
|
|
||||||
|
|
||||||
description: |
|
description: |
|
||||||
On ChromeOS systems with USB Type C ports, the ChromeOS Embedded Controller is
|
On ChromeOS systems with USB Type C ports, the ChromeOS Embedded Controller is
|
||||||
|
|
|
@ -10,7 +10,6 @@ title: I2C bus that tunnels through the ChromeOS EC (cros-ec)
|
||||||
maintainers:
|
maintainers:
|
||||||
- Doug Anderson <dianders@chromium.org>
|
- Doug Anderson <dianders@chromium.org>
|
||||||
- Benson Leung <bleung@chromium.org>
|
- Benson Leung <bleung@chromium.org>
|
||||||
- Enric Balletbo i Serra <enric.balletbo@collabora.com>
|
|
||||||
|
|
||||||
description: |
|
description: |
|
||||||
On some ChromeOS board designs we've got a connection to the EC
|
On some ChromeOS board designs we've got a connection to the EC
|
||||||
|
|
|
@ -10,7 +10,6 @@ title: ChromeOS EC MKBP Proximity Sensor
|
||||||
maintainers:
|
maintainers:
|
||||||
- Stephen Boyd <swboyd@chromium.org>
|
- Stephen Boyd <swboyd@chromium.org>
|
||||||
- Benson Leung <bleung@chromium.org>
|
- Benson Leung <bleung@chromium.org>
|
||||||
- Enric Balletbo i Serra <enric.balletbo@collabora.com>
|
|
||||||
|
|
||||||
description: |
|
description: |
|
||||||
Google's ChromeOS EC sometimes has the ability to detect user proximity.
|
Google's ChromeOS EC sometimes has the ability to detect user proximity.
|
||||||
|
|
|
@ -10,7 +10,6 @@ title: ChromeOS EC Keyboard
|
||||||
maintainers:
|
maintainers:
|
||||||
- Simon Glass <sjg@chromium.org>
|
- Simon Glass <sjg@chromium.org>
|
||||||
- Benson Leung <bleung@chromium.org>
|
- Benson Leung <bleung@chromium.org>
|
||||||
- Enric Balletbo i Serra <enric.balletbo@collabora.com>
|
|
||||||
|
|
||||||
description: |
|
description: |
|
||||||
Google's ChromeOS EC Keyboard is a simple matrix keyboard
|
Google's ChromeOS EC Keyboard is a simple matrix keyboard
|
||||||
|
|
|
@ -88,12 +88,6 @@ patternProperties:
|
||||||
which can be disabled to suppress events from the button.
|
which can be disabled to suppress events from the button.
|
||||||
type: boolean
|
type: boolean
|
||||||
|
|
||||||
pinctrl-0:
|
|
||||||
maxItems: 1
|
|
||||||
|
|
||||||
pinctrl-names:
|
|
||||||
maxItems: 1
|
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- linux,code
|
- linux,code
|
||||||
|
|
||||||
|
|
|
@ -81,14 +81,12 @@ properties:
|
||||||
data-lanes:
|
data-lanes:
|
||||||
description:
|
description:
|
||||||
Note that 'fsl,imx7-mipi-csi2' only supports up to 2 data lines.
|
Note that 'fsl,imx7-mipi-csi2' only supports up to 2 data lines.
|
||||||
|
minItems: 1
|
||||||
items:
|
items:
|
||||||
minItems: 1
|
- const: 1
|
||||||
maxItems: 4
|
- const: 2
|
||||||
items:
|
- const: 3
|
||||||
- const: 1
|
- const: 4
|
||||||
- const: 2
|
|
||||||
- const: 3
|
|
||||||
- const: 4
|
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- data-lanes
|
- data-lanes
|
||||||
|
|
|
@ -87,14 +87,12 @@ properties:
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
data-lanes:
|
data-lanes:
|
||||||
|
minItems: 1
|
||||||
items:
|
items:
|
||||||
minItems: 1
|
- const: 1
|
||||||
maxItems: 4
|
- const: 2
|
||||||
items:
|
- const: 3
|
||||||
- const: 1
|
- const: 4
|
||||||
- const: 2
|
|
||||||
- const: 3
|
|
||||||
- const: 4
|
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- data-lanes
|
- data-lanes
|
||||||
|
|
|
@ -245,8 +245,7 @@ examples:
|
||||||
|
|
||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
#interrupt-cells = <2>;
|
#interrupt-cells = <2>;
|
||||||
interrupts = <&host_irq1>;
|
interrupts = <4 1 0>;
|
||||||
interrupt-parent = <&gic>;
|
|
||||||
|
|
||||||
gpio-controller;
|
gpio-controller;
|
||||||
#gpio-cells = <2>;
|
#gpio-cells = <2>;
|
||||||
|
|
|
@ -8,7 +8,6 @@ title: ChromeOS Embedded Controller
|
||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Benson Leung <bleung@chromium.org>
|
- Benson Leung <bleung@chromium.org>
|
||||||
- Enric Balletbo i Serra <enric.balletbo@collabora.com>
|
|
||||||
- Guenter Roeck <groeck@chromium.org>
|
- Guenter Roeck <groeck@chromium.org>
|
||||||
|
|
||||||
description:
|
description:
|
||||||
|
|
|
@ -185,6 +185,9 @@ examples:
|
||||||
clock-names = "mclk", "apb_pclk";
|
clock-names = "mclk", "apb_pclk";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
mmc@80126000 {
|
mmc@80126000 {
|
||||||
compatible = "arm,pl18x", "arm,primecell";
|
compatible = "arm,pl18x", "arm,primecell";
|
||||||
reg = <0x80126000 0x1000>;
|
reg = <0x80126000 0x1000>;
|
||||||
|
@ -206,12 +209,12 @@ examples:
|
||||||
vqmmc-supply = <&vmmci>;
|
vqmmc-supply = <&vmmci>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
- |
|
||||||
mmc@101f6000 {
|
mmc@101f6000 {
|
||||||
compatible = "arm,pl18x", "arm,primecell";
|
compatible = "arm,pl18x", "arm,primecell";
|
||||||
reg = <0x101f6000 0x1000>;
|
reg = <0x101f6000 0x1000>;
|
||||||
clocks = <&sdiclk>, <&pclksdi>;
|
clocks = <&sdiclk>, <&pclksdi>;
|
||||||
clock-names = "mclk", "apb_pclk";
|
clock-names = "mclk", "apb_pclk";
|
||||||
interrupt-parent = <&vica>;
|
|
||||||
interrupts = <22>;
|
interrupts = <22>;
|
||||||
max-frequency = <400000>;
|
max-frequency = <400000>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
|
@ -226,6 +229,7 @@ examples:
|
||||||
vmmc-supply = <&vmmc_regulator>;
|
vmmc-supply = <&vmmc_regulator>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
- |
|
||||||
mmc@52007000 {
|
mmc@52007000 {
|
||||||
compatible = "arm,pl18x", "arm,primecell";
|
compatible = "arm,pl18x", "arm,primecell";
|
||||||
arm,primecell-periphid = <0x10153180>;
|
arm,primecell-periphid = <0x10153180>;
|
||||||
|
|
|
@ -76,33 +76,31 @@ properties:
|
||||||
M_CAN user manual for details.
|
M_CAN user manual for details.
|
||||||
$ref: /schemas/types.yaml#/definitions/int32-array
|
$ref: /schemas/types.yaml#/definitions/int32-array
|
||||||
items:
|
items:
|
||||||
items:
|
- description: The 'offset' is an address offset of the Message RAM where
|
||||||
- description: The 'offset' is an address offset of the Message RAM where
|
the following elements start from. This is usually set to 0x0 if
|
||||||
the following elements start from. This is usually set to 0x0 if
|
you're using a private Message RAM.
|
||||||
you're using a private Message RAM.
|
default: 0
|
||||||
default: 0
|
- description: 11-bit Filter 0-128 elements / 0-128 words
|
||||||
- description: 11-bit Filter 0-128 elements / 0-128 words
|
minimum: 0
|
||||||
minimum: 0
|
maximum: 128
|
||||||
maximum: 128
|
- description: 29-bit Filter 0-64 elements / 0-128 words
|
||||||
- description: 29-bit Filter 0-64 elements / 0-128 words
|
minimum: 0
|
||||||
minimum: 0
|
maximum: 64
|
||||||
maximum: 64
|
- description: Rx FIFO 0 0-64 elements / 0-1152 words
|
||||||
- description: Rx FIFO 0 0-64 elements / 0-1152 words
|
minimum: 0
|
||||||
minimum: 0
|
maximum: 64
|
||||||
maximum: 64
|
- description: Rx FIFO 1 0-64 elements / 0-1152 words
|
||||||
- description: Rx FIFO 1 0-64 elements / 0-1152 words
|
minimum: 0
|
||||||
minimum: 0
|
maximum: 64
|
||||||
maximum: 64
|
- description: Rx Buffers 0-64 elements / 0-1152 words
|
||||||
- description: Rx Buffers 0-64 elements / 0-1152 words
|
minimum: 0
|
||||||
minimum: 0
|
maximum: 64
|
||||||
maximum: 64
|
- description: Tx Event FIFO 0-32 elements / 0-64 words
|
||||||
- description: Tx Event FIFO 0-32 elements / 0-64 words
|
minimum: 0
|
||||||
minimum: 0
|
maximum: 32
|
||||||
maximum: 32
|
- description: Tx Buffers 0-32 elements / 0-576 words
|
||||||
- description: Tx Buffers 0-32 elements / 0-576 words
|
minimum: 0
|
||||||
minimum: 0
|
maximum: 32
|
||||||
maximum: 32
|
|
||||||
maxItems: 1
|
|
||||||
|
|
||||||
power-domains:
|
power-domains:
|
||||||
description:
|
description:
|
||||||
|
|
|
@ -17,9 +17,8 @@ properties:
|
||||||
description:
|
description:
|
||||||
Specifies the MAC address that was assigned to the network device.
|
Specifies the MAC address that was assigned to the network device.
|
||||||
$ref: /schemas/types.yaml#/definitions/uint8-array
|
$ref: /schemas/types.yaml#/definitions/uint8-array
|
||||||
items:
|
minItems: 6
|
||||||
- minItems: 6
|
maxItems: 6
|
||||||
maxItems: 6
|
|
||||||
|
|
||||||
mac-address:
|
mac-address:
|
||||||
description:
|
description:
|
||||||
|
@ -28,9 +27,8 @@ properties:
|
||||||
to the device by the boot program is different from the
|
to the device by the boot program is different from the
|
||||||
local-mac-address property.
|
local-mac-address property.
|
||||||
$ref: /schemas/types.yaml#/definitions/uint8-array
|
$ref: /schemas/types.yaml#/definitions/uint8-array
|
||||||
items:
|
minItems: 6
|
||||||
- minItems: 6
|
maxItems: 6
|
||||||
maxItems: 6
|
|
||||||
|
|
||||||
max-frame-size:
|
max-frame-size:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
@ -164,33 +162,30 @@ properties:
|
||||||
type: array
|
type: array
|
||||||
then:
|
then:
|
||||||
deprecated: true
|
deprecated: true
|
||||||
minItems: 1
|
|
||||||
maxItems: 1
|
|
||||||
items:
|
items:
|
||||||
items:
|
- minimum: 0
|
||||||
- minimum: 0
|
maximum: 31
|
||||||
maximum: 31
|
description:
|
||||||
description:
|
Emulated PHY ID, choose any but unique to the all
|
||||||
Emulated PHY ID, choose any but unique to the all
|
specified fixed-links
|
||||||
specified fixed-links
|
|
||||||
|
|
||||||
- enum: [0, 1]
|
- enum: [0, 1]
|
||||||
description:
|
description:
|
||||||
Duplex configuration. 0 for half duplex or 1 for
|
Duplex configuration. 0 for half duplex or 1 for
|
||||||
full duplex
|
full duplex
|
||||||
|
|
||||||
- enum: [10, 100, 1000, 2500, 10000]
|
- enum: [10, 100, 1000, 2500, 10000]
|
||||||
description:
|
description:
|
||||||
Link speed in Mbits/sec.
|
Link speed in Mbits/sec.
|
||||||
|
|
||||||
- enum: [0, 1]
|
- enum: [0, 1]
|
||||||
description:
|
description:
|
||||||
Pause configuration. 0 for no pause, 1 for pause
|
Pause configuration. 0 for no pause, 1 for pause
|
||||||
|
|
||||||
- enum: [0, 1]
|
- enum: [0, 1]
|
||||||
description:
|
description:
|
||||||
Asymmetric pause configuration. 0 for no asymmetric
|
Asymmetric pause configuration. 0 for no asymmetric
|
||||||
pause, 1 for asymmetric pause
|
pause, 1 for asymmetric pause
|
||||||
|
|
||||||
|
|
||||||
- if:
|
- if:
|
||||||
|
|
|
@ -50,16 +50,15 @@ patternProperties:
|
||||||
Offset and size in bytes within the storage device.
|
Offset and size in bytes within the storage device.
|
||||||
|
|
||||||
bits:
|
bits:
|
||||||
maxItems: 1
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
items:
|
items:
|
||||||
items:
|
- minimum: 0
|
||||||
- minimum: 0
|
maximum: 7
|
||||||
maximum: 7
|
description:
|
||||||
description:
|
Offset in bit within the address range specified by reg.
|
||||||
Offset in bit within the address range specified by reg.
|
- minimum: 1
|
||||||
- minimum: 1
|
description:
|
||||||
description:
|
Size in bit within the address range specified by reg.
|
||||||
Size in bit within the address range specified by reg.
|
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- reg
|
- reg
|
||||||
|
|
|
@ -51,15 +51,6 @@ properties:
|
||||||
appropriate of the LOCHNAGARx_PIN_NUM_GPIOS define, see [3].
|
appropriate of the LOCHNAGARx_PIN_NUM_GPIOS define, see [3].
|
||||||
maxItems: 1
|
maxItems: 1
|
||||||
|
|
||||||
pinctrl-0:
|
|
||||||
description:
|
|
||||||
A phandle to the default pinctrl state.
|
|
||||||
|
|
||||||
pinctrl-names:
|
|
||||||
description:
|
|
||||||
A pinctrl state named "default" must be defined.
|
|
||||||
const: default
|
|
||||||
|
|
||||||
pin-settings:
|
pin-settings:
|
||||||
type: object
|
type: object
|
||||||
patternProperties:
|
patternProperties:
|
||||||
|
|
|
@ -30,16 +30,6 @@ description: |
|
||||||
Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
|
Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
pinctrl-0:
|
|
||||||
description:
|
|
||||||
A phandle to the node containing the subnodes containing default
|
|
||||||
configurations.
|
|
||||||
|
|
||||||
pinctrl-names:
|
|
||||||
description:
|
|
||||||
A pinctrl state named "default" must be defined.
|
|
||||||
const: default
|
|
||||||
|
|
||||||
pin-settings:
|
pin-settings:
|
||||||
description:
|
description:
|
||||||
One subnode is required to contain the default settings. It
|
One subnode is required to contain the default settings. It
|
||||||
|
|
|
@ -43,7 +43,7 @@ properties:
|
||||||
priority:
|
priority:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
description: |
|
description: |
|
||||||
A priority ranging from 0 to 255 (default 128) according to the following guidelines:
|
A priority ranging from 0 to 255 (default 129) according to the following guidelines:
|
||||||
|
|
||||||
0: Restart handler of last resort, with limited restart capabilities.
|
0: Restart handler of last resort, with limited restart capabilities.
|
||||||
128: Default restart handler; use if no other restart handler is expected to be available,
|
128: Default restart handler; use if no other restart handler is expected to be available,
|
||||||
|
@ -51,7 +51,7 @@ properties:
|
||||||
255: Highest priority restart handler, will preempt all other restart handlers.
|
255: Highest priority restart handler, will preempt all other restart handlers.
|
||||||
minimum: 0
|
minimum: 0
|
||||||
maximum: 255
|
maximum: 255
|
||||||
default: 128
|
default: 129
|
||||||
|
|
||||||
active-delay:
|
active-delay:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
|
|
@ -9,6 +9,8 @@ title: PWM controllers (providers)
|
||||||
maintainers:
|
maintainers:
|
||||||
- Thierry Reding <thierry.reding@gmail.com>
|
- Thierry Reding <thierry.reding@gmail.com>
|
||||||
|
|
||||||
|
select: false
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
$nodename:
|
$nodename:
|
||||||
pattern: "^pwm(@.*|-[0-9a-f])*$"
|
pattern: "^pwm(@.*|-[0-9a-f])*$"
|
||||||
|
|
|
@ -15,6 +15,7 @@ allOf:
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
enum:
|
enum:
|
||||||
|
- epson,rx8804
|
||||||
- epson,rx8900
|
- epson,rx8900
|
||||||
- microcrystal,rv8803
|
- microcrystal,rv8803
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,14 @@ properties:
|
||||||
- qcom,pmk8350-rtc
|
- qcom,pmk8350-rtc
|
||||||
|
|
||||||
reg:
|
reg:
|
||||||
maxItems: 1
|
minItems: 1
|
||||||
|
maxItems: 2
|
||||||
|
|
||||||
|
reg-names:
|
||||||
|
minItems: 1
|
||||||
|
items:
|
||||||
|
- const: rtc
|
||||||
|
- const: alarm
|
||||||
|
|
||||||
interrupts:
|
interrupts:
|
||||||
maxItems: 1
|
maxItems: 1
|
||||||
|
|
|
@ -127,6 +127,7 @@ examples:
|
||||||
st,syscfg = <&pwrcfg 0x00 0x100>;
|
st,syscfg = <&pwrcfg 0x00 0x100>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
- |
|
||||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
#include <dt-bindings/clock/stm32mp1-clks.h>
|
#include <dt-bindings/clock/stm32mp1-clks.h>
|
||||||
rtc@5c004000 {
|
rtc@5c004000 {
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
# Copyright (C) Sunplus Co., Ltd. 2021
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/rtc/sunplus,sp7021-rtc.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Sunplus SP7021 Real Time Clock controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Vincent Shih <vincent.sunplus@gmail.com>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: sunplus,sp7021-rtc
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
reg-names:
|
||||||
|
items:
|
||||||
|
- const: rtc
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
resets:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- reg-names
|
||||||
|
- clocks
|
||||||
|
- resets
|
||||||
|
- interrupts
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
rtc: serial@9c003a00 {
|
||||||
|
compatible = "sunplus,sp7021-rtc";
|
||||||
|
reg = <0x9c003a00 0x80>;
|
||||||
|
reg-names = "rtc";
|
||||||
|
clocks = <&clkc 0x12>;
|
||||||
|
resets = <&rstc 0x02>;
|
||||||
|
interrupt-parent = <&intc>;
|
||||||
|
interrupts = <163 IRQ_TYPE_EDGE_RISING>;
|
||||||
|
};
|
||||||
|
...
|
|
@ -110,12 +110,6 @@ properties:
|
||||||
Internal DMA register base address of the audio
|
Internal DMA register base address of the audio
|
||||||
subsystem (used in secondary sound source).
|
subsystem (used in secondary sound source).
|
||||||
|
|
||||||
pinctrl-0:
|
|
||||||
description: Should specify pin control groups used for this controller.
|
|
||||||
|
|
||||||
pinctrl-names:
|
|
||||||
const: default
|
|
||||||
|
|
||||||
power-domains:
|
power-domains:
|
||||||
maxItems: 1
|
maxItems: 1
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ properties:
|
||||||
- enum:
|
- enum:
|
||||||
# SMBus/I2C Digital Temperature Sensor in 6-Pin SOT with SMBus Alert and Over Temperature Pin
|
# SMBus/I2C Digital Temperature Sensor in 6-Pin SOT with SMBus Alert and Over Temperature Pin
|
||||||
- ad,ad7414
|
- ad,ad7414
|
||||||
# ADM9240: Complete System Hardware Monitor for uProcessor-Based Systems
|
# ADM9240: Complete System Hardware Monitor for uProcessor-Based Systems
|
||||||
- ad,adm9240
|
- ad,adm9240
|
||||||
# AD5110 - Nonvolatile Digital Potentiometer
|
# AD5110 - Nonvolatile Digital Potentiometer
|
||||||
- adi,ad5110
|
- adi,ad5110
|
||||||
|
@ -43,7 +43,7 @@ properties:
|
||||||
- adi,adp5589
|
- adi,adp5589
|
||||||
# AMS iAQ-Core VOC Sensor
|
# AMS iAQ-Core VOC Sensor
|
||||||
- ams,iaq-core
|
- ams,iaq-core
|
||||||
# i2c serial eeprom (24cxx)
|
# i2c serial eeprom (24cxx)
|
||||||
- at,24c08
|
- at,24c08
|
||||||
# i2c trusted platform module (TPM)
|
# i2c trusted platform module (TPM)
|
||||||
- atmel,at97sc3204t
|
- atmel,at97sc3204t
|
||||||
|
@ -303,9 +303,9 @@ properties:
|
||||||
- skyworks,sky81452
|
- skyworks,sky81452
|
||||||
# Socionext SynQuacer TPM MMIO module
|
# Socionext SynQuacer TPM MMIO module
|
||||||
- socionext,synquacer-tpm-mmio
|
- socionext,synquacer-tpm-mmio
|
||||||
# i2c serial eeprom (24cxx)
|
|
||||||
- sparkfun,qwiic-joystick
|
|
||||||
# SparkFun Qwiic Joystick (COM-15168) with i2c interface
|
# SparkFun Qwiic Joystick (COM-15168) with i2c interface
|
||||||
|
- sparkfun,qwiic-joystick
|
||||||
|
# i2c serial eeprom (24cxx)
|
||||||
- st,24c256
|
- st,24c256
|
||||||
# Ambient Light Sensor with SMBUS/Two Wire Serial Interface
|
# Ambient Light Sensor with SMBUS/Two Wire Serial Interface
|
||||||
- taos,tsl2550
|
- taos,tsl2550
|
||||||
|
|
|
@ -25,6 +25,8 @@ patternProperties:
|
||||||
# Keep list in alphabetical order.
|
# Keep list in alphabetical order.
|
||||||
"^70mai,.*":
|
"^70mai,.*":
|
||||||
description: 70mai Co., Ltd.
|
description: 70mai Co., Ltd.
|
||||||
|
"^8dev,.*":
|
||||||
|
description: 8devices, UAB
|
||||||
"^abb,.*":
|
"^abb,.*":
|
||||||
description: ABB
|
description: ABB
|
||||||
"^abilis,.*":
|
"^abilis,.*":
|
||||||
|
@ -441,6 +443,8 @@ patternProperties:
|
||||||
description: Freescale Semiconductor
|
description: Freescale Semiconductor
|
||||||
"^fujitsu,.*":
|
"^fujitsu,.*":
|
||||||
description: Fujitsu Ltd.
|
description: Fujitsu Ltd.
|
||||||
|
"^fxtec,.*":
|
||||||
|
description: FX Technology Ltd.
|
||||||
"^gardena,.*":
|
"^gardena,.*":
|
||||||
description: GARDENA GmbH
|
description: GARDENA GmbH
|
||||||
"^gateworks,.*":
|
"^gateworks,.*":
|
||||||
|
@ -515,6 +519,8 @@ patternProperties:
|
||||||
description: HannStar Display Co.
|
description: HannStar Display Co.
|
||||||
"^holtek,.*":
|
"^holtek,.*":
|
||||||
description: Holtek Semiconductor, Inc.
|
description: Holtek Semiconductor, Inc.
|
||||||
|
"^huawei,.*":
|
||||||
|
description: Huawei Technologies Co., Ltd.
|
||||||
"^hugsun,.*":
|
"^hugsun,.*":
|
||||||
description: Shenzhen Hugsun Technology Co. Ltd.
|
description: Shenzhen Hugsun Technology Co. Ltd.
|
||||||
"^hwacom,.*":
|
"^hwacom,.*":
|
||||||
|
@ -1207,6 +1213,8 @@ patternProperties:
|
||||||
description: THine Electronics, Inc.
|
description: THine Electronics, Inc.
|
||||||
"^thingyjp,.*":
|
"^thingyjp,.*":
|
||||||
description: thingy.jp
|
description: thingy.jp
|
||||||
|
"^thundercomm,.*":
|
||||||
|
description: Thundercomm Technology Co., Ltd.
|
||||||
"^ti,.*":
|
"^ti,.*":
|
||||||
description: Texas Instruments
|
description: Texas Instruments
|
||||||
"^tianma,.*":
|
"^tianma,.*":
|
||||||
|
@ -1334,6 +1342,8 @@ patternProperties:
|
||||||
description: Wiligear, Ltd.
|
description: Wiligear, Ltd.
|
||||||
"^winbond,.*":
|
"^winbond,.*":
|
||||||
description: Winbond Electronics corp.
|
description: Winbond Electronics corp.
|
||||||
|
"^wingtech,.*":
|
||||||
|
description: Wingtech Technology Co., Ltd.
|
||||||
"^winlink,.*":
|
"^winlink,.*":
|
||||||
description: WinLink Co., Ltd
|
description: WinLink Co., Ltd
|
||||||
"^winstar,.*":
|
"^winstar,.*":
|
||||||
|
|
|
@ -19,7 +19,7 @@ of kernel interfaces is available via exported symbols in `firewire-core` module
|
||||||
Firewire char device data structures
|
Firewire char device data structures
|
||||||
====================================
|
====================================
|
||||||
|
|
||||||
.. include:: /ABI/stable/firewire-cdev
|
.. include:: ../ABI/stable/firewire-cdev
|
||||||
:literal:
|
:literal:
|
||||||
|
|
||||||
.. kernel-doc:: include/uapi/linux/firewire-cdev.h
|
.. kernel-doc:: include/uapi/linux/firewire-cdev.h
|
||||||
|
@ -28,7 +28,7 @@ Firewire char device data structures
|
||||||
Firewire device probing and sysfs interfaces
|
Firewire device probing and sysfs interfaces
|
||||||
============================================
|
============================================
|
||||||
|
|
||||||
.. include:: /ABI/stable/sysfs-bus-firewire
|
.. include:: ../ABI/stable/sysfs-bus-firewire
|
||||||
:literal:
|
:literal:
|
||||||
|
|
||||||
.. kernel-doc:: drivers/firewire/core-device.c
|
.. kernel-doc:: drivers/firewire/core-device.c
|
||||||
|
|
|
@ -82,7 +82,7 @@ Mount Syntax
|
||||||
|
|
||||||
The basic mount syntax is::
|
The basic mount syntax is::
|
||||||
|
|
||||||
# mount -t ceph monip[:port][,monip2[:port]...]:/[subdir] mnt
|
# mount -t ceph user@fsid.fs_name=/[subdir] mnt -o mon_addr=monip1[:port][/monip2[:port]]
|
||||||
|
|
||||||
You only need to specify a single monitor, as the client will get the
|
You only need to specify a single monitor, as the client will get the
|
||||||
full list when it connects. (However, if the monitor you specify
|
full list when it connects. (However, if the monitor you specify
|
||||||
|
@ -90,16 +90,35 @@ happens to be down, the mount won't succeed.) The port can be left
|
||||||
off if the monitor is using the default. So if the monitor is at
|
off if the monitor is using the default. So if the monitor is at
|
||||||
1.2.3.4::
|
1.2.3.4::
|
||||||
|
|
||||||
# mount -t ceph 1.2.3.4:/ /mnt/ceph
|
# mount -t ceph cephuser@07fe3187-00d9-42a3-814b-72a4d5e7d5be.cephfs=/ /mnt/ceph -o mon_addr=1.2.3.4
|
||||||
|
|
||||||
is sufficient. If /sbin/mount.ceph is installed, a hostname can be
|
is sufficient. If /sbin/mount.ceph is installed, a hostname can be
|
||||||
used instead of an IP address.
|
used instead of an IP address and the cluster FSID can be left out
|
||||||
|
(as the mount helper will fill it in by reading the ceph configuration
|
||||||
|
file)::
|
||||||
|
|
||||||
|
# mount -t ceph cephuser@cephfs=/ /mnt/ceph -o mon_addr=mon-addr
|
||||||
|
|
||||||
|
Multiple monitor addresses can be passed by separating each address with a slash (`/`)::
|
||||||
|
|
||||||
|
# mount -t ceph cephuser@cephfs=/ /mnt/ceph -o mon_addr=192.168.1.100/192.168.1.101
|
||||||
|
|
||||||
|
When using the mount helper, monitor address can be read from ceph
|
||||||
|
configuration file if available. Note that, the cluster FSID (passed as part
|
||||||
|
of the device string) is validated by checking it with the FSID reported by
|
||||||
|
the monitor.
|
||||||
|
|
||||||
Mount Options
|
Mount Options
|
||||||
=============
|
=============
|
||||||
|
|
||||||
|
mon_addr=ip_address[:port][/ip_address[:port]]
|
||||||
|
Monitor address to the cluster. This is used to bootstrap the
|
||||||
|
connection to the cluster. Once connection is established, the
|
||||||
|
monitor addresses in the monitor map are followed.
|
||||||
|
|
||||||
|
fsid=cluster-id
|
||||||
|
FSID of the cluster (from `ceph fsid` command).
|
||||||
|
|
||||||
ip=A.B.C.D[:N]
|
ip=A.B.C.D[:N]
|
||||||
Specify the IP and/or port the client should bind to locally.
|
Specify the IP and/or port the client should bind to locally.
|
||||||
There is normally not much reason to do this. If the IP is not
|
There is normally not much reason to do this. If the IP is not
|
||||||
|
|
|
@ -47,12 +47,12 @@ RISC-V Linux Kernel SV39
|
||||||
| Kernel-space virtual memory, shared between all processes:
|
| Kernel-space virtual memory, shared between all processes:
|
||||||
____________________________________________________________|___________________________________________________________
|
____________________________________________________________|___________________________________________________________
|
||||||
| | | |
|
| | | |
|
||||||
ffffffc000000000 | -256 GB | ffffffc7ffffffff | 32 GB | kasan
|
ffffffc6fee00000 | -228 GB | ffffffc6feffffff | 2 MB | fixmap
|
||||||
ffffffcefee00000 | -196 GB | ffffffcefeffffff | 2 MB | fixmap
|
ffffffc6ff000000 | -228 GB | ffffffc6ffffffff | 16 MB | PCI io
|
||||||
ffffffceff000000 | -196 GB | ffffffceffffffff | 16 MB | PCI io
|
ffffffc700000000 | -228 GB | ffffffc7ffffffff | 4 GB | vmemmap
|
||||||
ffffffcf00000000 | -196 GB | ffffffcfffffffff | 4 GB | vmemmap
|
ffffffc800000000 | -224 GB | ffffffd7ffffffff | 64 GB | vmalloc/ioremap space
|
||||||
ffffffd000000000 | -192 GB | ffffffdfffffffff | 64 GB | vmalloc/ioremap space
|
ffffffd800000000 | -160 GB | fffffff6ffffffff | 124 GB | direct mapping of all physical memory
|
||||||
ffffffe000000000 | -128 GB | ffffffff7fffffff | 124 GB | direct mapping of all physical memory
|
fffffff700000000 | -36 GB | fffffffeffffffff | 32 GB | kasan
|
||||||
__________________|____________|__________________|_________|____________________________________________________________
|
__________________|____________|__________________|_________|____________________________________________________________
|
||||||
|
|
|
|
||||||
|
|
|
|
||||||
|
|
|
@ -255,7 +255,7 @@ The following picture shows a high level overview of AMD-TEE::
|
||||||
+--------------------------+ +---------+--------------------+
|
+--------------------------+ +---------+--------------------+
|
||||||
|
|
||||||
At the lowest level (in x86), the AMD Secure Processor (ASP) driver uses the
|
At the lowest level (in x86), the AMD Secure Processor (ASP) driver uses the
|
||||||
CPU to PSP mailbox regsister to submit commands to the PSP. The format of the
|
CPU to PSP mailbox register to submit commands to the PSP. The format of the
|
||||||
command buffer is opaque to the ASP driver. It's role is to submit commands to
|
command buffer is opaque to the ASP driver. It's role is to submit commands to
|
||||||
the secure processor and return results to AMD-TEE driver. The interface
|
the secure processor and return results to AMD-TEE driver. The interface
|
||||||
between AMD-TEE driver and AMD Secure Processor driver can be found in [6].
|
between AMD-TEE driver and AMD Secure Processor driver can be found in [6].
|
||||||
|
@ -290,7 +290,7 @@ cancel_req driver callback is not supported by AMD-TEE.
|
||||||
|
|
||||||
The GlobalPlatform TEE Client API [5] can be used by the user space (client) to
|
The GlobalPlatform TEE Client API [5] can be used by the user space (client) to
|
||||||
talk to AMD's TEE. AMD's TEE provides a secure environment for loading, opening
|
talk to AMD's TEE. AMD's TEE provides a secure environment for loading, opening
|
||||||
a session, invoking commands and clossing session with TA.
|
a session, invoking commands and closing session with TA.
|
||||||
|
|
||||||
References
|
References
|
||||||
==========
|
==========
|
||||||
|
|
|
@ -3370,7 +3370,7 @@ one of the latency tracers, you will get the following results.
|
||||||
|
|
||||||
Instances
|
Instances
|
||||||
---------
|
---------
|
||||||
In the tracefs tracing directory is a directory called "instances".
|
In the tracefs tracing directory, there is a directory called "instances".
|
||||||
This directory can have new directories created inside of it using
|
This directory can have new directories created inside of it using
|
||||||
mkdir, and removing directories with rmdir. The directory created
|
mkdir, and removing directories with rmdir. The directory created
|
||||||
with mkdir in this directory will already contain files and other
|
with mkdir in this directory will already contain files and other
|
||||||
|
|
|
@ -5545,8 +5545,8 @@ the trailing ``'\0'``, is indicated by ``name_size`` in the header.
|
||||||
The Stats Data block contains an array of 64-bit values in the same order
|
The Stats Data block contains an array of 64-bit values in the same order
|
||||||
as the descriptors in Descriptors block.
|
as the descriptors in Descriptors block.
|
||||||
|
|
||||||
4.42 KVM_GET_XSAVE2
|
4.134 KVM_GET_XSAVE2
|
||||||
------------------
|
--------------------
|
||||||
|
|
||||||
:Capability: KVM_CAP_XSAVE2
|
:Capability: KVM_CAP_XSAVE2
|
||||||
:Architectures: x86
|
:Architectures: x86
|
||||||
|
@ -7363,7 +7363,7 @@ trap and emulate MSRs that are outside of the scope of KVM as well as
|
||||||
limit the attack surface on KVM's MSR emulation code.
|
limit the attack surface on KVM's MSR emulation code.
|
||||||
|
|
||||||
8.28 KVM_CAP_ENFORCE_PV_FEATURE_CPUID
|
8.28 KVM_CAP_ENFORCE_PV_FEATURE_CPUID
|
||||||
-----------------------------
|
-------------------------------------
|
||||||
|
|
||||||
Architectures: x86
|
Architectures: x86
|
||||||
|
|
||||||
|
|
|
@ -1,296 +0,0 @@
|
||||||
.. _cleancache:
|
|
||||||
|
|
||||||
==========
|
|
||||||
Cleancache
|
|
||||||
==========
|
|
||||||
|
|
||||||
Motivation
|
|
||||||
==========
|
|
||||||
|
|
||||||
Cleancache is a new optional feature provided by the VFS layer that
|
|
||||||
potentially dramatically increases page cache effectiveness for
|
|
||||||
many workloads in many environments at a negligible cost.
|
|
||||||
|
|
||||||
Cleancache can be thought of as a page-granularity victim cache for clean
|
|
||||||
pages that the kernel's pageframe replacement algorithm (PFRA) would like
|
|
||||||
to keep around, but can't since there isn't enough memory. So when the
|
|
||||||
PFRA "evicts" a page, it first attempts to use cleancache code to
|
|
||||||
put the data contained in that page into "transcendent memory", memory
|
|
||||||
that is not directly accessible or addressable by the kernel and is
|
|
||||||
of unknown and possibly time-varying size.
|
|
||||||
|
|
||||||
Later, when a cleancache-enabled filesystem wishes to access a page
|
|
||||||
in a file on disk, it first checks cleancache to see if it already
|
|
||||||
contains it; if it does, the page of data is copied into the kernel
|
|
||||||
and a disk access is avoided.
|
|
||||||
|
|
||||||
Transcendent memory "drivers" for cleancache are currently implemented
|
|
||||||
in Xen (using hypervisor memory) and zcache (using in-kernel compressed
|
|
||||||
memory) and other implementations are in development.
|
|
||||||
|
|
||||||
:ref:`FAQs <faq>` are included below.
|
|
||||||
|
|
||||||
Implementation Overview
|
|
||||||
=======================
|
|
||||||
|
|
||||||
A cleancache "backend" that provides transcendent memory registers itself
|
|
||||||
to the kernel's cleancache "frontend" by calling cleancache_register_ops,
|
|
||||||
passing a pointer to a cleancache_ops structure with funcs set appropriately.
|
|
||||||
The functions provided must conform to certain semantics as follows:
|
|
||||||
|
|
||||||
Most important, cleancache is "ephemeral". Pages which are copied into
|
|
||||||
cleancache have an indefinite lifetime which is completely unknowable
|
|
||||||
by the kernel and so may or may not still be in cleancache at any later time.
|
|
||||||
Thus, as its name implies, cleancache is not suitable for dirty pages.
|
|
||||||
Cleancache has complete discretion over what pages to preserve and what
|
|
||||||
pages to discard and when.
|
|
||||||
|
|
||||||
Mounting a cleancache-enabled filesystem should call "init_fs" to obtain a
|
|
||||||
pool id which, if positive, must be saved in the filesystem's superblock;
|
|
||||||
a negative return value indicates failure. A "put_page" will copy a
|
|
||||||
(presumably about-to-be-evicted) page into cleancache and associate it with
|
|
||||||
the pool id, a file key, and a page index into the file. (The combination
|
|
||||||
of a pool id, a file key, and an index is sometimes called a "handle".)
|
|
||||||
A "get_page" will copy the page, if found, from cleancache into kernel memory.
|
|
||||||
An "invalidate_page" will ensure the page no longer is present in cleancache;
|
|
||||||
an "invalidate_inode" will invalidate all pages associated with the specified
|
|
||||||
file; and, when a filesystem is unmounted, an "invalidate_fs" will invalidate
|
|
||||||
all pages in all files specified by the given pool id and also surrender
|
|
||||||
the pool id.
|
|
||||||
|
|
||||||
An "init_shared_fs", like init_fs, obtains a pool id but tells cleancache
|
|
||||||
to treat the pool as shared using a 128-bit UUID as a key. On systems
|
|
||||||
that may run multiple kernels (such as hard partitioned or virtualized
|
|
||||||
systems) that may share a clustered filesystem, and where cleancache
|
|
||||||
may be shared among those kernels, calls to init_shared_fs that specify the
|
|
||||||
same UUID will receive the same pool id, thus allowing the pages to
|
|
||||||
be shared. Note that any security requirements must be imposed outside
|
|
||||||
of the kernel (e.g. by "tools" that control cleancache). Or a
|
|
||||||
cleancache implementation can simply disable shared_init by always
|
|
||||||
returning a negative value.
|
|
||||||
|
|
||||||
If a get_page is successful on a non-shared pool, the page is invalidated
|
|
||||||
(thus making cleancache an "exclusive" cache). On a shared pool, the page
|
|
||||||
is NOT invalidated on a successful get_page so that it remains accessible to
|
|
||||||
other sharers. The kernel is responsible for ensuring coherency between
|
|
||||||
cleancache (shared or not), the page cache, and the filesystem, using
|
|
||||||
cleancache invalidate operations as required.
|
|
||||||
|
|
||||||
Note that cleancache must enforce put-put-get coherency and get-get
|
|
||||||
coherency. For the former, if two puts are made to the same handle but
|
|
||||||
with different data, say AAA by the first put and BBB by the second, a
|
|
||||||
subsequent get can never return the stale data (AAA). For get-get coherency,
|
|
||||||
if a get for a given handle fails, subsequent gets for that handle will
|
|
||||||
never succeed unless preceded by a successful put with that handle.
|
|
||||||
|
|
||||||
Last, cleancache provides no SMP serialization guarantees; if two
|
|
||||||
different Linux threads are simultaneously putting and invalidating a page
|
|
||||||
with the same handle, the results are indeterminate. Callers must
|
|
||||||
lock the page to ensure serial behavior.
|
|
||||||
|
|
||||||
Cleancache Performance Metrics
|
|
||||||
==============================
|
|
||||||
|
|
||||||
If properly configured, monitoring of cleancache is done via debugfs in
|
|
||||||
the `/sys/kernel/debug/cleancache` directory. The effectiveness of cleancache
|
|
||||||
can be measured (across all filesystems) with:
|
|
||||||
|
|
||||||
``succ_gets``
|
|
||||||
number of gets that were successful
|
|
||||||
|
|
||||||
``failed_gets``
|
|
||||||
number of gets that failed
|
|
||||||
|
|
||||||
``puts``
|
|
||||||
number of puts attempted (all "succeed")
|
|
||||||
|
|
||||||
``invalidates``
|
|
||||||
number of invalidates attempted
|
|
||||||
|
|
||||||
A backend implementation may provide additional metrics.
|
|
||||||
|
|
||||||
.. _faq:
|
|
||||||
|
|
||||||
FAQ
|
|
||||||
===
|
|
||||||
|
|
||||||
* Where's the value? (Andrew Morton)
|
|
||||||
|
|
||||||
Cleancache provides a significant performance benefit to many workloads
|
|
||||||
in many environments with negligible overhead by improving the
|
|
||||||
effectiveness of the pagecache. Clean pagecache pages are
|
|
||||||
saved in transcendent memory (RAM that is otherwise not directly
|
|
||||||
addressable to the kernel); fetching those pages later avoids "refaults"
|
|
||||||
and thus disk reads.
|
|
||||||
|
|
||||||
Cleancache (and its sister code "frontswap") provide interfaces for
|
|
||||||
this transcendent memory (aka "tmem"), which conceptually lies between
|
|
||||||
fast kernel-directly-addressable RAM and slower DMA/asynchronous devices.
|
|
||||||
Disallowing direct kernel or userland reads/writes to tmem
|
|
||||||
is ideal when data is transformed to a different form and size (such
|
|
||||||
as with compression) or secretly moved (as might be useful for write-
|
|
||||||
balancing for some RAM-like devices). Evicted page-cache pages (and
|
|
||||||
swap pages) are a great use for this kind of slower-than-RAM-but-much-
|
|
||||||
faster-than-disk transcendent memory, and the cleancache (and frontswap)
|
|
||||||
"page-object-oriented" specification provides a nice way to read and
|
|
||||||
write -- and indirectly "name" -- the pages.
|
|
||||||
|
|
||||||
In the virtual case, the whole point of virtualization is to statistically
|
|
||||||
multiplex physical resources across the varying demands of multiple
|
|
||||||
virtual machines. This is really hard to do with RAM and efforts to
|
|
||||||
do it well with no kernel change have essentially failed (except in some
|
|
||||||
well-publicized special-case workloads). Cleancache -- and frontswap --
|
|
||||||
with a fairly small impact on the kernel, provide a huge amount
|
|
||||||
of flexibility for more dynamic, flexible RAM multiplexing.
|
|
||||||
Specifically, the Xen Transcendent Memory backend allows otherwise
|
|
||||||
"fallow" hypervisor-owned RAM to not only be "time-shared" between multiple
|
|
||||||
virtual machines, but the pages can be compressed and deduplicated to
|
|
||||||
optimize RAM utilization. And when guest OS's are induced to surrender
|
|
||||||
underutilized RAM (e.g. with "self-ballooning"), page cache pages
|
|
||||||
are the first to go, and cleancache allows those pages to be
|
|
||||||
saved and reclaimed if overall host system memory conditions allow.
|
|
||||||
|
|
||||||
And the identical interface used for cleancache can be used in
|
|
||||||
physical systems as well. The zcache driver acts as a memory-hungry
|
|
||||||
device that stores pages of data in a compressed state. And
|
|
||||||
the proposed "RAMster" driver shares RAM across multiple physical
|
|
||||||
systems.
|
|
||||||
|
|
||||||
* Why does cleancache have its sticky fingers so deep inside the
|
|
||||||
filesystems and VFS? (Andrew Morton and Christoph Hellwig)
|
|
||||||
|
|
||||||
The core hooks for cleancache in VFS are in most cases a single line
|
|
||||||
and the minimum set are placed precisely where needed to maintain
|
|
||||||
coherency (via cleancache_invalidate operations) between cleancache,
|
|
||||||
the page cache, and disk. All hooks compile into nothingness if
|
|
||||||
cleancache is config'ed off and turn into a function-pointer-
|
|
||||||
compare-to-NULL if config'ed on but no backend claims the ops
|
|
||||||
functions, or to a compare-struct-element-to-negative if a
|
|
||||||
backend claims the ops functions but a filesystem doesn't enable
|
|
||||||
cleancache.
|
|
||||||
|
|
||||||
Some filesystems are built entirely on top of VFS and the hooks
|
|
||||||
in VFS are sufficient, so don't require an "init_fs" hook; the
|
|
||||||
initial implementation of cleancache didn't provide this hook.
|
|
||||||
But for some filesystems (such as btrfs), the VFS hooks are
|
|
||||||
incomplete and one or more hooks in fs-specific code are required.
|
|
||||||
And for some other filesystems, such as tmpfs, cleancache may
|
|
||||||
be counterproductive. So it seemed prudent to require a filesystem
|
|
||||||
to "opt in" to use cleancache, which requires adding a hook in
|
|
||||||
each filesystem. Not all filesystems are supported by cleancache
|
|
||||||
only because they haven't been tested. The existing set should
|
|
||||||
be sufficient to validate the concept, the opt-in approach means
|
|
||||||
that untested filesystems are not affected, and the hooks in the
|
|
||||||
existing filesystems should make it very easy to add more
|
|
||||||
filesystems in the future.
|
|
||||||
|
|
||||||
The total impact of the hooks to existing fs and mm files is only
|
|
||||||
about 40 lines added (not counting comments and blank lines).
|
|
||||||
|
|
||||||
* Why not make cleancache asynchronous and batched so it can more
|
|
||||||
easily interface with real devices with DMA instead of copying each
|
|
||||||
individual page? (Minchan Kim)
|
|
||||||
|
|
||||||
The one-page-at-a-time copy semantics simplifies the implementation
|
|
||||||
on both the frontend and backend and also allows the backend to
|
|
||||||
do fancy things on-the-fly like page compression and
|
|
||||||
page deduplication. And since the data is "gone" (copied into/out
|
|
||||||
of the pageframe) before the cleancache get/put call returns,
|
|
||||||
a great deal of race conditions and potential coherency issues
|
|
||||||
are avoided. While the interface seems odd for a "real device"
|
|
||||||
or for real kernel-addressable RAM, it makes perfect sense for
|
|
||||||
transcendent memory.
|
|
||||||
|
|
||||||
* Why is non-shared cleancache "exclusive"? And where is the
|
|
||||||
page "invalidated" after a "get"? (Minchan Kim)
|
|
||||||
|
|
||||||
The main reason is to free up space in transcendent memory and
|
|
||||||
to avoid unnecessary cleancache_invalidate calls. If you want inclusive,
|
|
||||||
the page can be "put" immediately following the "get". If
|
|
||||||
put-after-get for inclusive becomes common, the interface could
|
|
||||||
be easily extended to add a "get_no_invalidate" call.
|
|
||||||
|
|
||||||
The invalidate is done by the cleancache backend implementation.
|
|
||||||
|
|
||||||
* What's the performance impact?
|
|
||||||
|
|
||||||
Performance analysis has been presented at OLS'09 and LCA'10.
|
|
||||||
Briefly, performance gains can be significant on most workloads,
|
|
||||||
especially when memory pressure is high (e.g. when RAM is
|
|
||||||
overcommitted in a virtual workload); and because the hooks are
|
|
||||||
invoked primarily in place of or in addition to a disk read/write,
|
|
||||||
overhead is negligible even in worst case workloads. Basically
|
|
||||||
cleancache replaces I/O with memory-copy-CPU-overhead; on older
|
|
||||||
single-core systems with slow memory-copy speeds, cleancache
|
|
||||||
has little value, but in newer multicore machines, especially
|
|
||||||
consolidated/virtualized machines, it has great value.
|
|
||||||
|
|
||||||
* How do I add cleancache support for filesystem X? (Boaz Harrash)
|
|
||||||
|
|
||||||
Filesystems that are well-behaved and conform to certain
|
|
||||||
restrictions can utilize cleancache simply by making a call to
|
|
||||||
cleancache_init_fs at mount time. Unusual, misbehaving, or
|
|
||||||
poorly layered filesystems must either add additional hooks
|
|
||||||
and/or undergo extensive additional testing... or should just
|
|
||||||
not enable the optional cleancache.
|
|
||||||
|
|
||||||
Some points for a filesystem to consider:
|
|
||||||
|
|
||||||
- The FS should be block-device-based (e.g. a ram-based FS such
|
|
||||||
as tmpfs should not enable cleancache)
|
|
||||||
- To ensure coherency/correctness, the FS must ensure that all
|
|
||||||
file removal or truncation operations either go through VFS or
|
|
||||||
add hooks to do the equivalent cleancache "invalidate" operations
|
|
||||||
- To ensure coherency/correctness, either inode numbers must
|
|
||||||
be unique across the lifetime of the on-disk file OR the
|
|
||||||
FS must provide an "encode_fh" function.
|
|
||||||
- The FS must call the VFS superblock alloc and deactivate routines
|
|
||||||
or add hooks to do the equivalent cleancache calls done there.
|
|
||||||
- To maximize performance, all pages fetched from the FS should
|
|
||||||
go through the do_mpag_readpage routine or the FS should add
|
|
||||||
hooks to do the equivalent (cf. btrfs)
|
|
||||||
- Currently, the FS blocksize must be the same as PAGESIZE. This
|
|
||||||
is not an architectural restriction, but no backends currently
|
|
||||||
support anything different.
|
|
||||||
- A clustered FS should invoke the "shared_init_fs" cleancache
|
|
||||||
hook to get best performance for some backends.
|
|
||||||
|
|
||||||
* Why not use the KVA of the inode as the key? (Christoph Hellwig)
|
|
||||||
|
|
||||||
If cleancache would use the inode virtual address instead of
|
|
||||||
inode/filehandle, the pool id could be eliminated. But, this
|
|
||||||
won't work because cleancache retains pagecache data pages
|
|
||||||
persistently even when the inode has been pruned from the
|
|
||||||
inode unused list, and only invalidates the data page if the file
|
|
||||||
gets removed/truncated. So if cleancache used the inode kva,
|
|
||||||
there would be potential coherency issues if/when the inode
|
|
||||||
kva is reused for a different file. Alternately, if cleancache
|
|
||||||
invalidated the pages when the inode kva was freed, much of the value
|
|
||||||
of cleancache would be lost because the cache of pages in cleanache
|
|
||||||
is potentially much larger than the kernel pagecache and is most
|
|
||||||
useful if the pages survive inode cache removal.
|
|
||||||
|
|
||||||
* Why is a global variable required?
|
|
||||||
|
|
||||||
The cleancache_enabled flag is checked in all of the frequently-used
|
|
||||||
cleancache hooks. The alternative is a function call to check a static
|
|
||||||
variable. Since cleancache is enabled dynamically at runtime, systems
|
|
||||||
that don't enable cleancache would suffer thousands (possibly
|
|
||||||
tens-of-thousands) of unnecessary function calls per second. So the
|
|
||||||
global variable allows cleancache to be enabled by default at compile
|
|
||||||
time, but have insignificant performance impact when cleancache remains
|
|
||||||
disabled at runtime.
|
|
||||||
|
|
||||||
* Does cleanache work with KVM?
|
|
||||||
|
|
||||||
The memory model of KVM is sufficiently different that a cleancache
|
|
||||||
backend may have less value for KVM. This remains to be tested,
|
|
||||||
especially in an overcommitted system.
|
|
||||||
|
|
||||||
* Does cleancache work in userspace? It sounds useful for
|
|
||||||
memory hungry caches like web browsers. (Jamie Lokier)
|
|
||||||
|
|
||||||
No plans yet, though we agree it sounds useful, at least for
|
|
||||||
apps that bypass the page cache (e.g. O_DIRECT).
|
|
||||||
|
|
||||||
Last updated: Dan Magenheimer, April 13 2011
|
|
|
@ -8,12 +8,6 @@ Frontswap provides a "transcendent memory" interface for swap pages.
|
||||||
In some environments, dramatic performance savings may be obtained because
|
In some environments, dramatic performance savings may be obtained because
|
||||||
swapped pages are saved in RAM (or a RAM-like device) instead of a swap disk.
|
swapped pages are saved in RAM (or a RAM-like device) instead of a swap disk.
|
||||||
|
|
||||||
(Note, frontswap -- and :ref:`cleancache` (merged at 3.0) -- are the "frontends"
|
|
||||||
and the only necessary changes to the core kernel for transcendent memory;
|
|
||||||
all other supporting code -- the "backends" -- is implemented as drivers.
|
|
||||||
See the LWN.net article `Transcendent memory in a nutshell`_
|
|
||||||
for a detailed overview of frontswap and related kernel parts)
|
|
||||||
|
|
||||||
.. _Transcendent memory in a nutshell: https://lwn.net/Articles/454795/
|
.. _Transcendent memory in a nutshell: https://lwn.net/Articles/454795/
|
||||||
|
|
||||||
Frontswap is so named because it can be thought of as the opposite of
|
Frontswap is so named because it can be thought of as the opposite of
|
||||||
|
@ -45,12 +39,6 @@ a disk write and, if the data is later read back, a disk read are avoided.
|
||||||
If a store returns failure, transcendent memory has rejected the data, and the
|
If a store returns failure, transcendent memory has rejected the data, and the
|
||||||
page can be written to swap as usual.
|
page can be written to swap as usual.
|
||||||
|
|
||||||
If a backend chooses, frontswap can be configured as a "writethrough
|
|
||||||
cache" by calling frontswap_writethrough(). In this mode, the reduction
|
|
||||||
in swap device writes is lost (and also a non-trivial performance advantage)
|
|
||||||
in order to allow the backend to arbitrarily "reclaim" space used to
|
|
||||||
store frontswap pages to more completely manage its memory usage.
|
|
||||||
|
|
||||||
Note that if a page is stored and the page already exists in transcendent memory
|
Note that if a page is stored and the page already exists in transcendent memory
|
||||||
(a "duplicate" store), either the store succeeds and the data is overwritten,
|
(a "duplicate" store), either the store succeeds and the data is overwritten,
|
||||||
or the store fails AND the page is invalidated. This ensures stale data may
|
or the store fails AND the page is invalidated. This ensures stale data may
|
||||||
|
@ -87,11 +75,9 @@ This interface is ideal when data is transformed to a different form
|
||||||
and size (such as with compression) or secretly moved (as might be
|
and size (such as with compression) or secretly moved (as might be
|
||||||
useful for write-balancing for some RAM-like devices). Swap pages (and
|
useful for write-balancing for some RAM-like devices). Swap pages (and
|
||||||
evicted page-cache pages) are a great use for this kind of slower-than-RAM-
|
evicted page-cache pages) are a great use for this kind of slower-than-RAM-
|
||||||
but-much-faster-than-disk "pseudo-RAM device" and the frontswap (and
|
but-much-faster-than-disk "pseudo-RAM device".
|
||||||
cleancache) interface to transcendent memory provides a nice way to read
|
|
||||||
and write -- and indirectly "name" -- the pages.
|
|
||||||
|
|
||||||
Frontswap -- and cleancache -- with a fairly small impact on the kernel,
|
Frontswap with a fairly small impact on the kernel,
|
||||||
provides a huge amount of flexibility for more dynamic, flexible RAM
|
provides a huge amount of flexibility for more dynamic, flexible RAM
|
||||||
utilization in various system configurations:
|
utilization in various system configurations:
|
||||||
|
|
||||||
|
@ -269,19 +255,6 @@ the old data and ensure that it is no longer accessible. Since the
|
||||||
swap subsystem then writes the new data to the read swap device,
|
swap subsystem then writes the new data to the read swap device,
|
||||||
this is the correct course of action to ensure coherency.
|
this is the correct course of action to ensure coherency.
|
||||||
|
|
||||||
* What is frontswap_shrink for?
|
|
||||||
|
|
||||||
When the (non-frontswap) swap subsystem swaps out a page to a real
|
|
||||||
swap device, that page is only taking up low-value pre-allocated disk
|
|
||||||
space. But if frontswap has placed a page in transcendent memory, that
|
|
||||||
page may be taking up valuable real estate. The frontswap_shrink
|
|
||||||
routine allows code outside of the swap subsystem to force pages out
|
|
||||||
of the memory managed by frontswap and back into kernel-addressable memory.
|
|
||||||
For example, in RAMster, a "suction driver" thread will attempt
|
|
||||||
to "repatriate" pages sent to a remote machine back to the local machine;
|
|
||||||
this is driven using the frontswap_shrink mechanism when memory pressure
|
|
||||||
subsides.
|
|
||||||
|
|
||||||
* Why does the frontswap patch create the new include file swapfile.h?
|
* Why does the frontswap patch create the new include file swapfile.h?
|
||||||
|
|
||||||
The frontswap code depends on some swap-subsystem-internal data
|
The frontswap code depends on some swap-subsystem-internal data
|
||||||
|
|
|
@ -15,7 +15,6 @@ algorithms. If you are looking for advice on simply allocating memory, see the
|
||||||
active_mm
|
active_mm
|
||||||
arch_pgtable_helpers
|
arch_pgtable_helpers
|
||||||
balance
|
balance
|
||||||
cleancache
|
|
||||||
damon/index
|
damon/index
|
||||||
free_page_reporting
|
free_page_reporting
|
||||||
frontswap
|
frontswap
|
||||||
|
|
25
MAINTAINERS
25
MAINTAINERS
|
@ -3411,14 +3411,14 @@ M: Yury Norov <yury.norov@gmail.com>
|
||||||
R: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
|
R: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
|
||||||
R: Rasmus Villemoes <linux@rasmusvillemoes.dk>
|
R: Rasmus Villemoes <linux@rasmusvillemoes.dk>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: include/asm-generic/bitops/find.h
|
|
||||||
F: include/linux/bitmap.h
|
F: include/linux/bitmap.h
|
||||||
|
F: include/linux/find.h
|
||||||
F: lib/bitmap.c
|
F: lib/bitmap.c
|
||||||
F: lib/find_bit.c
|
F: lib/find_bit.c
|
||||||
F: lib/find_bit_benchmark.c
|
F: lib/find_bit_benchmark.c
|
||||||
F: lib/test_bitmap.c
|
F: lib/test_bitmap.c
|
||||||
F: tools/include/asm-generic/bitops/find.h
|
|
||||||
F: tools/include/linux/bitmap.h
|
F: tools/include/linux/bitmap.h
|
||||||
|
F: tools/include/linux/find.h
|
||||||
F: tools/lib/bitmap.c
|
F: tools/lib/bitmap.c
|
||||||
F: tools/lib/find_bit.c
|
F: tools/lib/find_bit.c
|
||||||
|
|
||||||
|
@ -4706,13 +4706,6 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/cla
|
||||||
F: include/linux/cfi.h
|
F: include/linux/cfi.h
|
||||||
F: kernel/cfi.c
|
F: kernel/cfi.c
|
||||||
|
|
||||||
CLEANCACHE API
|
|
||||||
M: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
|
|
||||||
L: linux-kernel@vger.kernel.org
|
|
||||||
S: Maintained
|
|
||||||
F: include/linux/cleancache.h
|
|
||||||
F: mm/cleancache.c
|
|
||||||
|
|
||||||
CLK API
|
CLK API
|
||||||
M: Russell King <linux@armlinux.org.uk>
|
M: Russell King <linux@armlinux.org.uk>
|
||||||
L: linux-clk@vger.kernel.org
|
L: linux-clk@vger.kernel.org
|
||||||
|
@ -7216,8 +7209,10 @@ F: drivers/net/mdio/of_mdio.c
|
||||||
F: drivers/net/pcs/
|
F: drivers/net/pcs/
|
||||||
F: drivers/net/phy/
|
F: drivers/net/phy/
|
||||||
F: include/dt-bindings/net/qca-ar803x.h
|
F: include/dt-bindings/net/qca-ar803x.h
|
||||||
|
F: include/linux/linkmode.h
|
||||||
F: include/linux/*mdio*.h
|
F: include/linux/*mdio*.h
|
||||||
F: include/linux/mdio/*.h
|
F: include/linux/mdio/*.h
|
||||||
|
F: include/linux/mii.h
|
||||||
F: include/linux/of_net.h
|
F: include/linux/of_net.h
|
||||||
F: include/linux/phy.h
|
F: include/linux/phy.h
|
||||||
F: include/linux/phy_fixed.h
|
F: include/linux/phy_fixed.h
|
||||||
|
@ -13459,7 +13454,11 @@ L: netdev@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
|
||||||
F: arch/x86/net/*
|
F: arch/x86/net/*
|
||||||
|
F: include/linux/ip.h
|
||||||
|
F: include/linux/ipv6*
|
||||||
|
F: include/net/fib*
|
||||||
F: include/net/ip*
|
F: include/net/ip*
|
||||||
|
F: include/net/route.h
|
||||||
F: net/ipv4/
|
F: net/ipv4/
|
||||||
F: net/ipv6/
|
F: net/ipv6/
|
||||||
|
|
||||||
|
@ -16807,6 +16806,7 @@ M: Heiko Carstens <hca@linux.ibm.com>
|
||||||
M: Vasily Gorbik <gor@linux.ibm.com>
|
M: Vasily Gorbik <gor@linux.ibm.com>
|
||||||
M: Christian Borntraeger <borntraeger@linux.ibm.com>
|
M: Christian Borntraeger <borntraeger@linux.ibm.com>
|
||||||
R: Alexander Gordeev <agordeev@linux.ibm.com>
|
R: Alexander Gordeev <agordeev@linux.ibm.com>
|
||||||
|
R: Sven Schnelle <svens@linux.ibm.com>
|
||||||
L: linux-s390@vger.kernel.org
|
L: linux-s390@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://www.ibm.com/developerworks/linux/linux390/
|
W: http://www.ibm.com/developerworks/linux/linux390/
|
||||||
|
@ -18490,6 +18490,13 @@ L: netdev@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: drivers/net/ethernet/dlink/sundance.c
|
F: drivers/net/ethernet/dlink/sundance.c
|
||||||
|
|
||||||
|
SUNPLUS RTC DRIVER
|
||||||
|
M: Vincent Shih <vincent.sunplus@gmail.com>
|
||||||
|
L: linux-rtc@vger.kernel.org
|
||||||
|
S: Maintained
|
||||||
|
F: Documentation/devicetree/bindings/rtc/sunplus,sp7021-rtc.yaml
|
||||||
|
F: drivers/rtc/rtc-sunplus.c
|
||||||
|
|
||||||
SUPERH
|
SUPERH
|
||||||
M: Yoshinori Sato <ysato@users.sourceforge.jp>
|
M: Yoshinori Sato <ysato@users.sourceforge.jp>
|
||||||
M: Rich Felker <dalias@libc.org>
|
M: Rich Felker <dalias@libc.org>
|
||||||
|
|
6
Makefile
6
Makefile
|
@ -1,8 +1,8 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
VERSION = 5
|
VERSION = 5
|
||||||
PATCHLEVEL = 16
|
PATCHLEVEL = 17
|
||||||
SUBLEVEL = 0
|
SUBLEVEL = 0
|
||||||
EXTRAVERSION =
|
EXTRAVERSION = -rc1
|
||||||
NAME = Gobble Gobble
|
NAME = Gobble Gobble
|
||||||
|
|
||||||
# *DOCUMENTATION*
|
# *DOCUMENTATION*
|
||||||
|
@ -778,7 +778,7 @@ stackp-flags-$(CONFIG_STACKPROTECTOR_STRONG) := -fstack-protector-strong
|
||||||
KBUILD_CFLAGS += $(stackp-flags-y)
|
KBUILD_CFLAGS += $(stackp-flags-y)
|
||||||
|
|
||||||
KBUILD_CFLAGS-$(CONFIG_WERROR) += -Werror
|
KBUILD_CFLAGS-$(CONFIG_WERROR) += -Werror
|
||||||
KBUILD_CFLAGS += $(KBUILD_CFLAGS-y) $(CONFIG_CC_IMPLICIT_FALLTHROUGH:"%"=%)
|
KBUILD_CFLAGS += $(KBUILD_CFLAGS-y) $(CONFIG_CC_IMPLICIT_FALLTHROUGH)
|
||||||
|
|
||||||
ifdef CONFIG_CC_IS_CLANG
|
ifdef CONFIG_CC_IS_CLANG
|
||||||
KBUILD_CPPFLAGS += -Qunused-arguments
|
KBUILD_CPPFLAGS += -Qunused-arguments
|
||||||
|
|
|
@ -430,8 +430,6 @@ static inline unsigned int __arch_hweight8(unsigned int w)
|
||||||
|
|
||||||
#endif /* __KERNEL__ */
|
#endif /* __KERNEL__ */
|
||||||
|
|
||||||
#include <asm-generic/bitops/find.h>
|
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -80,7 +80,12 @@ init_rtc_epoch(void)
|
||||||
static int
|
static int
|
||||||
alpha_rtc_read_time(struct device *dev, struct rtc_time *tm)
|
alpha_rtc_read_time(struct device *dev, struct rtc_time *tm)
|
||||||
{
|
{
|
||||||
mc146818_get_time(tm);
|
int ret = mc146818_get_time(tm);
|
||||||
|
|
||||||
|
if (ret < 0) {
|
||||||
|
dev_err_ratelimited(dev, "unable to read current time\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/* Adjust for non-default epochs. It's easier to depend on the
|
/* Adjust for non-default epochs. It's easier to depend on the
|
||||||
generic __get_rtc_time and adjust the epoch here than create
|
generic __get_rtc_time and adjust the epoch here than create
|
||||||
|
|
|
@ -83,14 +83,14 @@ static int srm_env_proc_show(struct seq_file *m, void *v)
|
||||||
|
|
||||||
static int srm_env_proc_open(struct inode *inode, struct file *file)
|
static int srm_env_proc_open(struct inode *inode, struct file *file)
|
||||||
{
|
{
|
||||||
return single_open(file, srm_env_proc_show, PDE_DATA(inode));
|
return single_open(file, srm_env_proc_show, pde_data(inode));
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t srm_env_proc_write(struct file *file, const char __user *buffer,
|
static ssize_t srm_env_proc_write(struct file *file, const char __user *buffer,
|
||||||
size_t count, loff_t *pos)
|
size_t count, loff_t *pos)
|
||||||
{
|
{
|
||||||
int res;
|
int res;
|
||||||
unsigned long id = (unsigned long)PDE_DATA(file_inode(file));
|
unsigned long id = (unsigned long)pde_data(file_inode(file));
|
||||||
char *buf = (char *) __get_free_page(GFP_USER);
|
char *buf = (char *) __get_free_page(GFP_USER);
|
||||||
unsigned long ret1, ret2;
|
unsigned long ret1, ret2;
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,6 @@ config ARC
|
||||||
select COMMON_CLK
|
select COMMON_CLK
|
||||||
select DMA_DIRECT_REMAP
|
select DMA_DIRECT_REMAP
|
||||||
select GENERIC_ATOMIC64 if !ISA_ARCV2 || !(ARC_HAS_LL64 && ARC_HAS_LLSC)
|
select GENERIC_ATOMIC64 if !ISA_ARCV2 || !(ARC_HAS_LL64 && ARC_HAS_LLSC)
|
||||||
select GENERIC_FIND_FIRST_BIT
|
|
||||||
# for now, we don't need GENERIC_IRQ_PROBE, CONFIG_GENERIC_IRQ_CHIP
|
# for now, we don't need GENERIC_IRQ_PROBE, CONFIG_GENERIC_IRQ_CHIP
|
||||||
select GENERIC_IRQ_SHOW
|
select GENERIC_IRQ_SHOW
|
||||||
select GENERIC_PCI_IOMAP
|
select GENERIC_PCI_IOMAP
|
||||||
|
|
|
@ -189,7 +189,6 @@ static inline __attribute__ ((const)) unsigned long __ffs(unsigned long x)
|
||||||
#include <asm-generic/bitops/atomic.h>
|
#include <asm-generic/bitops/atomic.h>
|
||||||
#include <asm-generic/bitops/non-atomic.h>
|
#include <asm-generic/bitops/non-atomic.h>
|
||||||
|
|
||||||
#include <asm-generic/bitops/find.h>
|
|
||||||
#include <asm-generic/bitops/le.h>
|
#include <asm-generic/bitops/le.h>
|
||||||
#include <asm-generic/bitops/ext2-atomic-setbit.h>
|
#include <asm-generic/bitops/ext2-atomic-setbit.h>
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,6 @@ CONFIG_ARCH_BCM2835=y
|
||||||
CONFIG_PREEMPT_VOLUNTARY=y
|
CONFIG_PREEMPT_VOLUNTARY=y
|
||||||
CONFIG_AEABI=y
|
CONFIG_AEABI=y
|
||||||
CONFIG_KSM=y
|
CONFIG_KSM=y
|
||||||
CONFIG_CLEANCACHE=y
|
|
||||||
CONFIG_CMA=y
|
CONFIG_CMA=y
|
||||||
CONFIG_SECCOMP=y
|
CONFIG_SECCOMP=y
|
||||||
CONFIG_KEXEC=y
|
CONFIG_KEXEC=y
|
||||||
|
|
|
@ -27,7 +27,6 @@ CONFIG_PCIE_QCOM=y
|
||||||
CONFIG_SMP=y
|
CONFIG_SMP=y
|
||||||
CONFIG_PREEMPT=y
|
CONFIG_PREEMPT=y
|
||||||
CONFIG_HIGHMEM=y
|
CONFIG_HIGHMEM=y
|
||||||
CONFIG_CLEANCACHE=y
|
|
||||||
CONFIG_ARM_APPENDED_DTB=y
|
CONFIG_ARM_APPENDED_DTB=y
|
||||||
CONFIG_ARM_ATAG_DTB_COMPAT=y
|
CONFIG_ARM_ATAG_DTB_COMPAT=y
|
||||||
CONFIG_CPU_IDLE=y
|
CONFIG_CPU_IDLE=y
|
||||||
|
|
|
@ -288,6 +288,7 @@
|
||||||
*/
|
*/
|
||||||
#define ALT_UP(instr...) \
|
#define ALT_UP(instr...) \
|
||||||
.pushsection ".alt.smp.init", "a" ;\
|
.pushsection ".alt.smp.init", "a" ;\
|
||||||
|
.align 2 ;\
|
||||||
.long 9998b - . ;\
|
.long 9998b - . ;\
|
||||||
9997: instr ;\
|
9997: instr ;\
|
||||||
.if . - 9997b == 2 ;\
|
.if . - 9997b == 2 ;\
|
||||||
|
@ -299,6 +300,7 @@
|
||||||
.popsection
|
.popsection
|
||||||
#define ALT_UP_B(label) \
|
#define ALT_UP_B(label) \
|
||||||
.pushsection ".alt.smp.init", "a" ;\
|
.pushsection ".alt.smp.init", "a" ;\
|
||||||
|
.align 2 ;\
|
||||||
.long 9998b - . ;\
|
.long 9998b - . ;\
|
||||||
W(b) . + (label - 9998b) ;\
|
W(b) . + (label - 9998b) ;\
|
||||||
.popsection
|
.popsection
|
||||||
|
|
|
@ -264,7 +264,6 @@ static inline int find_next_bit_le(const void *p, int size, int offset)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <asm-generic/bitops/find.h>
|
|
||||||
#include <asm-generic/bitops/le.h>
|
#include <asm-generic/bitops/le.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -96,6 +96,7 @@ unsigned long __get_wchan(struct task_struct *p);
|
||||||
#define __ALT_SMP_ASM(smp, up) \
|
#define __ALT_SMP_ASM(smp, up) \
|
||||||
"9998: " smp "\n" \
|
"9998: " smp "\n" \
|
||||||
" .pushsection \".alt.smp.init\", \"a\"\n" \
|
" .pushsection \".alt.smp.init\", \"a\"\n" \
|
||||||
|
" .align 2\n" \
|
||||||
" .long 9998b - .\n" \
|
" .long 9998b - .\n" \
|
||||||
" " up "\n" \
|
" " up "\n" \
|
||||||
" .popsection\n"
|
" .popsection\n"
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
#include <asm/memory.h>
|
#include <asm/memory.h>
|
||||||
#include <asm/domain.h>
|
#include <asm/domain.h>
|
||||||
|
#include <asm/unaligned.h>
|
||||||
#include <asm/unified.h>
|
#include <asm/unified.h>
|
||||||
#include <asm/compiler.h>
|
#include <asm/compiler.h>
|
||||||
|
|
||||||
|
@ -497,7 +498,10 @@ do { \
|
||||||
} \
|
} \
|
||||||
default: __err = __get_user_bad(); break; \
|
default: __err = __get_user_bad(); break; \
|
||||||
} \
|
} \
|
||||||
*(type *)(dst) = __val; \
|
if (IS_ENABLED(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)) \
|
||||||
|
put_unaligned(__val, (type *)(dst)); \
|
||||||
|
else \
|
||||||
|
*(type *)(dst) = __val; /* aligned by caller */ \
|
||||||
if (__err) \
|
if (__err) \
|
||||||
goto err_label; \
|
goto err_label; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
@ -507,7 +511,9 @@ do { \
|
||||||
const type *__pk_ptr = (dst); \
|
const type *__pk_ptr = (dst); \
|
||||||
unsigned long __dst = (unsigned long)__pk_ptr; \
|
unsigned long __dst = (unsigned long)__pk_ptr; \
|
||||||
int __err = 0; \
|
int __err = 0; \
|
||||||
type __val = *(type *)src; \
|
type __val = IS_ENABLED(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS) \
|
||||||
|
? get_unaligned((type *)(src)) \
|
||||||
|
: *(type *)(src); /* aligned by caller */ \
|
||||||
switch (sizeof(type)) { \
|
switch (sizeof(type)) { \
|
||||||
case 1: __put_user_asm_byte(__val, __dst, __err, ""); break; \
|
case 1: __put_user_asm_byte(__val, __dst, __err, ""); break; \
|
||||||
case 2: __put_user_asm_half(__val, __dst, __err, ""); break; \
|
case 2: __put_user_asm_half(__val, __dst, __err, ""); break; \
|
||||||
|
|
|
@ -13,7 +13,7 @@ struct buffer {
|
||||||
static ssize_t atags_read(struct file *file, char __user *buf,
|
static ssize_t atags_read(struct file *file, char __user *buf,
|
||||||
size_t count, loff_t *ppos)
|
size_t count, loff_t *ppos)
|
||||||
{
|
{
|
||||||
struct buffer *b = PDE_DATA(file_inode(file));
|
struct buffer *b = pde_data(file_inode(file));
|
||||||
return simple_read_from_buffer(buf, count, ppos, b->data, b->size);
|
return simple_read_from_buffer(buf, count, ppos, b->data, b->size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1005,7 +1005,7 @@ static int __init noalign_setup(char *__unused)
|
||||||
__setup("noalign", noalign_setup);
|
__setup("noalign", noalign_setup);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This needs to be done after sysctl_init, otherwise sys/ will be
|
* This needs to be done after sysctl_init_bases(), otherwise sys/ will be
|
||||||
* overwritten. Actually, this shouldn't be in sys/ at all since
|
* overwritten. Actually, this shouldn't be in sys/ at all since
|
||||||
* it isn't a sysctl, and it doesn't contain sysctl information.
|
* it isn't a sysctl, and it doesn't contain sysctl information.
|
||||||
* We now locate it in /proc/cpu/alignment instead.
|
* We now locate it in /proc/cpu/alignment instead.
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
KASAN_SANITIZE_actions-common.o := n
|
||||||
|
KASAN_SANITIZE_actions-arm.o := n
|
||||||
|
KASAN_SANITIZE_actions-thumb.o := n
|
||||||
obj-$(CONFIG_KPROBES) += core.o actions-common.o checkers-common.o
|
obj-$(CONFIG_KPROBES) += core.o actions-common.o checkers-common.o
|
||||||
obj-$(CONFIG_ARM_KPROBES_TEST) += test-kprobes.o
|
obj-$(CONFIG_ARM_KPROBES_TEST) += test-kprobes.o
|
||||||
test-kprobes-objs := test-core.o
|
test-kprobes-objs := test-core.o
|
||||||
|
|
|
@ -120,7 +120,6 @@ config ARM64
|
||||||
select GENERIC_CPU_AUTOPROBE
|
select GENERIC_CPU_AUTOPROBE
|
||||||
select GENERIC_CPU_VULNERABILITIES
|
select GENERIC_CPU_VULNERABILITIES
|
||||||
select GENERIC_EARLY_IOREMAP
|
select GENERIC_EARLY_IOREMAP
|
||||||
select GENERIC_FIND_FIRST_BIT
|
|
||||||
select GENERIC_IDLE_POLL_SETUP
|
select GENERIC_IDLE_POLL_SETUP
|
||||||
select GENERIC_IRQ_IPI
|
select GENERIC_IRQ_IPI
|
||||||
select GENERIC_IRQ_PROBE
|
select GENERIC_IRQ_PROBE
|
||||||
|
|
|
@ -249,7 +249,7 @@ __lse__cmpxchg_case_##name##sz(volatile void *ptr, \
|
||||||
" mov %" #w "[tmp], %" #w "[old]\n" \
|
" mov %" #w "[tmp], %" #w "[old]\n" \
|
||||||
" cas" #mb #sfx "\t%" #w "[tmp], %" #w "[new], %[v]\n" \
|
" cas" #mb #sfx "\t%" #w "[tmp], %" #w "[new], %[v]\n" \
|
||||||
" mov %" #w "[ret], %" #w "[tmp]" \
|
" mov %" #w "[ret], %" #w "[tmp]" \
|
||||||
: [ret] "+r" (x0), [v] "+Q" (*(unsigned long *)ptr), \
|
: [ret] "+r" (x0), [v] "+Q" (*(u##sz *)ptr), \
|
||||||
[tmp] "=&r" (tmp) \
|
[tmp] "=&r" (tmp) \
|
||||||
: [old] "r" (x1), [new] "r" (x2) \
|
: [old] "r" (x1), [new] "r" (x2) \
|
||||||
: cl); \
|
: cl); \
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
|
|
||||||
#include <asm-generic/bitops/ffz.h>
|
#include <asm-generic/bitops/ffz.h>
|
||||||
#include <asm-generic/bitops/fls64.h>
|
#include <asm-generic/bitops/fls64.h>
|
||||||
#include <asm-generic/bitops/find.h>
|
|
||||||
|
|
||||||
#include <asm-generic/bitops/sched.h>
|
#include <asm-generic/bitops/sched.h>
|
||||||
#include <asm-generic/bitops/hweight.h>
|
#include <asm-generic/bitops/hweight.h>
|
||||||
|
|
|
@ -243,7 +243,7 @@ static inline void __cmpwait_case_##sz(volatile void *ptr, \
|
||||||
" cbnz %" #w "[tmp], 1f\n" \
|
" cbnz %" #w "[tmp], 1f\n" \
|
||||||
" wfe\n" \
|
" wfe\n" \
|
||||||
"1:" \
|
"1:" \
|
||||||
: [tmp] "=&r" (tmp), [v] "+Q" (*(unsigned long *)ptr) \
|
: [tmp] "=&r" (tmp), [v] "+Q" (*(u##sz *)ptr) \
|
||||||
: [val] "r" (val)); \
|
: [val] "r" (val)); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -172,7 +172,7 @@ int pfn_is_map_memory(unsigned long pfn)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(pfn_is_map_memory);
|
EXPORT_SYMBOL(pfn_is_map_memory);
|
||||||
|
|
||||||
static phys_addr_t memory_limit = PHYS_ADDR_MAX;
|
static phys_addr_t memory_limit __ro_after_init = PHYS_ADDR_MAX;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Limit the memory size that was specified via FDT.
|
* Limit the memory size that was specified via FDT.
|
||||||
|
|
|
@ -59,7 +59,6 @@ static __always_inline unsigned long __fls(unsigned long x)
|
||||||
|
|
||||||
#include <asm-generic/bitops/ffz.h>
|
#include <asm-generic/bitops/ffz.h>
|
||||||
#include <asm-generic/bitops/fls64.h>
|
#include <asm-generic/bitops/fls64.h>
|
||||||
#include <asm-generic/bitops/find.h>
|
|
||||||
|
|
||||||
#ifndef _LINUX_BITOPS_H
|
#ifndef _LINUX_BITOPS_H
|
||||||
#error only <linux/bitops.h> can be included directly
|
#error only <linux/bitops.h> can be included directly
|
||||||
|
|
|
@ -168,7 +168,6 @@ static inline unsigned long __ffs(unsigned long word)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <asm-generic/bitops/find.h>
|
|
||||||
#include <asm-generic/bitops/sched.h>
|
#include <asm-generic/bitops/sched.h>
|
||||||
#include <asm-generic/bitops/hweight.h>
|
#include <asm-generic/bitops/hweight.h>
|
||||||
#include <asm-generic/bitops/lock.h>
|
#include <asm-generic/bitops/lock.h>
|
||||||
|
|
|
@ -271,7 +271,6 @@ static inline unsigned long __fls(unsigned long word)
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <asm-generic/bitops/lock.h>
|
#include <asm-generic/bitops/lock.h>
|
||||||
#include <asm-generic/bitops/find.h>
|
|
||||||
|
|
||||||
#include <asm-generic/bitops/fls64.h>
|
#include <asm-generic/bitops/fls64.h>
|
||||||
#include <asm-generic/bitops/sched.h>
|
#include <asm-generic/bitops/sched.h>
|
||||||
|
|
|
@ -441,8 +441,6 @@ static __inline__ unsigned long __arch_hweight64(unsigned long x)
|
||||||
|
|
||||||
#endif /* __KERNEL__ */
|
#endif /* __KERNEL__ */
|
||||||
|
|
||||||
#include <asm-generic/bitops/find.h>
|
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
|
|
||||||
#include <asm-generic/bitops/le.h>
|
#include <asm-generic/bitops/le.h>
|
||||||
|
|
|
@ -282,7 +282,7 @@ salinfo_event_open(struct inode *inode, struct file *file)
|
||||||
static ssize_t
|
static ssize_t
|
||||||
salinfo_event_read(struct file *file, char __user *buffer, size_t count, loff_t *ppos)
|
salinfo_event_read(struct file *file, char __user *buffer, size_t count, loff_t *ppos)
|
||||||
{
|
{
|
||||||
struct salinfo_data *data = PDE_DATA(file_inode(file));
|
struct salinfo_data *data = pde_data(file_inode(file));
|
||||||
char cmd[32];
|
char cmd[32];
|
||||||
size_t size;
|
size_t size;
|
||||||
int i, n, cpu = -1;
|
int i, n, cpu = -1;
|
||||||
|
@ -340,7 +340,7 @@ static const struct proc_ops salinfo_event_proc_ops = {
|
||||||
static int
|
static int
|
||||||
salinfo_log_open(struct inode *inode, struct file *file)
|
salinfo_log_open(struct inode *inode, struct file *file)
|
||||||
{
|
{
|
||||||
struct salinfo_data *data = PDE_DATA(inode);
|
struct salinfo_data *data = pde_data(inode);
|
||||||
|
|
||||||
if (!capable(CAP_SYS_ADMIN))
|
if (!capable(CAP_SYS_ADMIN))
|
||||||
return -EPERM;
|
return -EPERM;
|
||||||
|
@ -365,7 +365,7 @@ salinfo_log_open(struct inode *inode, struct file *file)
|
||||||
static int
|
static int
|
||||||
salinfo_log_release(struct inode *inode, struct file *file)
|
salinfo_log_release(struct inode *inode, struct file *file)
|
||||||
{
|
{
|
||||||
struct salinfo_data *data = PDE_DATA(inode);
|
struct salinfo_data *data = pde_data(inode);
|
||||||
|
|
||||||
if (data->state == STATE_NO_DATA) {
|
if (data->state == STATE_NO_DATA) {
|
||||||
vfree(data->log_buffer);
|
vfree(data->log_buffer);
|
||||||
|
@ -433,7 +433,7 @@ retry:
|
||||||
static ssize_t
|
static ssize_t
|
||||||
salinfo_log_read(struct file *file, char __user *buffer, size_t count, loff_t *ppos)
|
salinfo_log_read(struct file *file, char __user *buffer, size_t count, loff_t *ppos)
|
||||||
{
|
{
|
||||||
struct salinfo_data *data = PDE_DATA(file_inode(file));
|
struct salinfo_data *data = pde_data(file_inode(file));
|
||||||
u8 *buf;
|
u8 *buf;
|
||||||
u64 bufsize;
|
u64 bufsize;
|
||||||
|
|
||||||
|
@ -494,7 +494,7 @@ salinfo_log_clear(struct salinfo_data *data, int cpu)
|
||||||
static ssize_t
|
static ssize_t
|
||||||
salinfo_log_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos)
|
salinfo_log_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos)
|
||||||
{
|
{
|
||||||
struct salinfo_data *data = PDE_DATA(file_inode(file));
|
struct salinfo_data *data = pde_data(file_inode(file));
|
||||||
char cmd[32];
|
char cmd[32];
|
||||||
size_t size;
|
size_t size;
|
||||||
u32 offset;
|
u32 offset;
|
||||||
|
|
|
@ -45,7 +45,6 @@ CONFIG_IOSCHED_BFQ=m
|
||||||
CONFIG_BINFMT_AOUT=m
|
CONFIG_BINFMT_AOUT=m
|
||||||
CONFIG_BINFMT_MISC=m
|
CONFIG_BINFMT_MISC=m
|
||||||
# CONFIG_COMPACTION is not set
|
# CONFIG_COMPACTION is not set
|
||||||
CONFIG_CLEANCACHE=y
|
|
||||||
CONFIG_ZPOOL=m
|
CONFIG_ZPOOL=m
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
CONFIG_PACKET=y
|
CONFIG_PACKET=y
|
||||||
|
|
|
@ -41,7 +41,6 @@ CONFIG_IOSCHED_BFQ=m
|
||||||
CONFIG_BINFMT_AOUT=m
|
CONFIG_BINFMT_AOUT=m
|
||||||
CONFIG_BINFMT_MISC=m
|
CONFIG_BINFMT_MISC=m
|
||||||
# CONFIG_COMPACTION is not set
|
# CONFIG_COMPACTION is not set
|
||||||
CONFIG_CLEANCACHE=y
|
|
||||||
CONFIG_ZPOOL=m
|
CONFIG_ZPOOL=m
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
CONFIG_PACKET=y
|
CONFIG_PACKET=y
|
||||||
|
|
|
@ -48,7 +48,6 @@ CONFIG_IOSCHED_BFQ=m
|
||||||
CONFIG_BINFMT_AOUT=m
|
CONFIG_BINFMT_AOUT=m
|
||||||
CONFIG_BINFMT_MISC=m
|
CONFIG_BINFMT_MISC=m
|
||||||
# CONFIG_COMPACTION is not set
|
# CONFIG_COMPACTION is not set
|
||||||
CONFIG_CLEANCACHE=y
|
|
||||||
CONFIG_ZPOOL=m
|
CONFIG_ZPOOL=m
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
CONFIG_PACKET=y
|
CONFIG_PACKET=y
|
||||||
|
|
|
@ -38,7 +38,6 @@ CONFIG_IOSCHED_BFQ=m
|
||||||
CONFIG_BINFMT_AOUT=m
|
CONFIG_BINFMT_AOUT=m
|
||||||
CONFIG_BINFMT_MISC=m
|
CONFIG_BINFMT_MISC=m
|
||||||
# CONFIG_COMPACTION is not set
|
# CONFIG_COMPACTION is not set
|
||||||
CONFIG_CLEANCACHE=y
|
|
||||||
CONFIG_ZPOOL=m
|
CONFIG_ZPOOL=m
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
CONFIG_PACKET=y
|
CONFIG_PACKET=y
|
||||||
|
|
|
@ -40,7 +40,6 @@ CONFIG_IOSCHED_BFQ=m
|
||||||
CONFIG_BINFMT_AOUT=m
|
CONFIG_BINFMT_AOUT=m
|
||||||
CONFIG_BINFMT_MISC=m
|
CONFIG_BINFMT_MISC=m
|
||||||
# CONFIG_COMPACTION is not set
|
# CONFIG_COMPACTION is not set
|
||||||
CONFIG_CLEANCACHE=y
|
|
||||||
CONFIG_ZPOOL=m
|
CONFIG_ZPOOL=m
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
CONFIG_PACKET=y
|
CONFIG_PACKET=y
|
||||||
|
|
|
@ -39,7 +39,6 @@ CONFIG_IOSCHED_BFQ=m
|
||||||
CONFIG_BINFMT_AOUT=m
|
CONFIG_BINFMT_AOUT=m
|
||||||
CONFIG_BINFMT_MISC=m
|
CONFIG_BINFMT_MISC=m
|
||||||
# CONFIG_COMPACTION is not set
|
# CONFIG_COMPACTION is not set
|
||||||
CONFIG_CLEANCACHE=y
|
|
||||||
CONFIG_ZPOOL=m
|
CONFIG_ZPOOL=m
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
CONFIG_PACKET=y
|
CONFIG_PACKET=y
|
||||||
|
|
|
@ -59,7 +59,6 @@ CONFIG_IOSCHED_BFQ=m
|
||||||
CONFIG_BINFMT_AOUT=m
|
CONFIG_BINFMT_AOUT=m
|
||||||
CONFIG_BINFMT_MISC=m
|
CONFIG_BINFMT_MISC=m
|
||||||
# CONFIG_COMPACTION is not set
|
# CONFIG_COMPACTION is not set
|
||||||
CONFIG_CLEANCACHE=y
|
|
||||||
CONFIG_ZPOOL=m
|
CONFIG_ZPOOL=m
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
CONFIG_PACKET=y
|
CONFIG_PACKET=y
|
||||||
|
|
|
@ -37,7 +37,6 @@ CONFIG_IOSCHED_BFQ=m
|
||||||
CONFIG_BINFMT_AOUT=m
|
CONFIG_BINFMT_AOUT=m
|
||||||
CONFIG_BINFMT_MISC=m
|
CONFIG_BINFMT_MISC=m
|
||||||
# CONFIG_COMPACTION is not set
|
# CONFIG_COMPACTION is not set
|
||||||
CONFIG_CLEANCACHE=y
|
|
||||||
CONFIG_ZPOOL=m
|
CONFIG_ZPOOL=m
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
CONFIG_PACKET=y
|
CONFIG_PACKET=y
|
||||||
|
|
|
@ -38,7 +38,6 @@ CONFIG_IOSCHED_BFQ=m
|
||||||
CONFIG_BINFMT_AOUT=m
|
CONFIG_BINFMT_AOUT=m
|
||||||
CONFIG_BINFMT_MISC=m
|
CONFIG_BINFMT_MISC=m
|
||||||
# CONFIG_COMPACTION is not set
|
# CONFIG_COMPACTION is not set
|
||||||
CONFIG_CLEANCACHE=y
|
|
||||||
CONFIG_ZPOOL=m
|
CONFIG_ZPOOL=m
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
CONFIG_PACKET=y
|
CONFIG_PACKET=y
|
||||||
|
|
|
@ -39,7 +39,6 @@ CONFIG_IOSCHED_BFQ=m
|
||||||
CONFIG_BINFMT_AOUT=m
|
CONFIG_BINFMT_AOUT=m
|
||||||
CONFIG_BINFMT_MISC=m
|
CONFIG_BINFMT_MISC=m
|
||||||
# CONFIG_COMPACTION is not set
|
# CONFIG_COMPACTION is not set
|
||||||
CONFIG_CLEANCACHE=y
|
|
||||||
CONFIG_ZPOOL=m
|
CONFIG_ZPOOL=m
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
CONFIG_PACKET=y
|
CONFIG_PACKET=y
|
||||||
|
|
|
@ -35,7 +35,6 @@ CONFIG_IOSCHED_BFQ=m
|
||||||
CONFIG_BINFMT_AOUT=m
|
CONFIG_BINFMT_AOUT=m
|
||||||
CONFIG_BINFMT_MISC=m
|
CONFIG_BINFMT_MISC=m
|
||||||
# CONFIG_COMPACTION is not set
|
# CONFIG_COMPACTION is not set
|
||||||
CONFIG_CLEANCACHE=y
|
|
||||||
CONFIG_ZPOOL=m
|
CONFIG_ZPOOL=m
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
CONFIG_PACKET=y
|
CONFIG_PACKET=y
|
||||||
|
|
|
@ -35,7 +35,6 @@ CONFIG_IOSCHED_BFQ=m
|
||||||
CONFIG_BINFMT_AOUT=m
|
CONFIG_BINFMT_AOUT=m
|
||||||
CONFIG_BINFMT_MISC=m
|
CONFIG_BINFMT_MISC=m
|
||||||
# CONFIG_COMPACTION is not set
|
# CONFIG_COMPACTION is not set
|
||||||
CONFIG_CLEANCACHE=y
|
|
||||||
CONFIG_ZPOOL=m
|
CONFIG_ZPOOL=m
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
CONFIG_PACKET=y
|
CONFIG_PACKET=y
|
||||||
|
|
|
@ -529,6 +529,4 @@ static inline int __fls(int x)
|
||||||
#include <asm-generic/bitops/le.h>
|
#include <asm-generic/bitops/le.h>
|
||||||
#endif /* __KERNEL__ */
|
#endif /* __KERNEL__ */
|
||||||
|
|
||||||
#include <asm-generic/bitops/find.h>
|
|
||||||
|
|
||||||
#endif /* _M68K_BITOPS_H */
|
#endif /* _M68K_BITOPS_H */
|
||||||
|
|
|
@ -32,7 +32,6 @@ config MIPS
|
||||||
select GENERIC_ATOMIC64 if !64BIT
|
select GENERIC_ATOMIC64 if !64BIT
|
||||||
select GENERIC_CMOS_UPDATE
|
select GENERIC_CMOS_UPDATE
|
||||||
select GENERIC_CPU_AUTOPROBE
|
select GENERIC_CPU_AUTOPROBE
|
||||||
select GENERIC_FIND_FIRST_BIT
|
|
||||||
select GENERIC_GETTIMEOFDAY
|
select GENERIC_GETTIMEOFDAY
|
||||||
select GENERIC_IOMAP
|
select GENERIC_IOMAP
|
||||||
select GENERIC_IRQ_PROBE
|
select GENERIC_IRQ_PROBE
|
||||||
|
|
|
@ -444,7 +444,6 @@ static inline int ffs(int word)
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <asm-generic/bitops/ffz.h>
|
#include <asm-generic/bitops/ffz.h>
|
||||||
#include <asm-generic/bitops/find.h>
|
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,6 @@
|
||||||
#include <asm/bitops/fls.h>
|
#include <asm/bitops/fls.h>
|
||||||
#include <asm/bitops/__fls.h>
|
#include <asm/bitops/__fls.h>
|
||||||
#include <asm-generic/bitops/fls64.h>
|
#include <asm-generic/bitops/fls64.h>
|
||||||
#include <asm-generic/bitops/find.h>
|
|
||||||
|
|
||||||
#ifndef _LINUX_BITOPS_H
|
#ifndef _LINUX_BITOPS_H
|
||||||
#error only <linux/bitops.h> can be included directly
|
#error only <linux/bitops.h> can be included directly
|
||||||
|
|
|
@ -203,7 +203,6 @@ static __inline__ int fls(unsigned int x)
|
||||||
#include <asm-generic/bitops/hweight.h>
|
#include <asm-generic/bitops/hweight.h>
|
||||||
#include <asm-generic/bitops/lock.h>
|
#include <asm-generic/bitops/lock.h>
|
||||||
#include <asm-generic/bitops/sched.h>
|
#include <asm-generic/bitops/sched.h>
|
||||||
#include <asm-generic/bitops/find.h>
|
|
||||||
#include <asm-generic/bitops/le.h>
|
#include <asm-generic/bitops/le.h>
|
||||||
#include <asm-generic/bitops/ext2-atomic-setbit.h>
|
#include <asm-generic/bitops/ext2-atomic-setbit.h>
|
||||||
|
|
||||||
|
|
|
@ -289,6 +289,7 @@ extern int _parisc_requires_coherency;
|
||||||
|
|
||||||
extern int running_on_qemu;
|
extern int running_on_qemu;
|
||||||
|
|
||||||
|
extern void __noreturn toc_intr(struct pt_regs *regs);
|
||||||
extern void toc_handler(void);
|
extern void toc_handler(void);
|
||||||
extern unsigned int toc_handler_size;
|
extern unsigned int toc_handler_size;
|
||||||
extern unsigned int toc_handler_csum;
|
extern unsigned int toc_handler_csum;
|
||||||
|
|
|
@ -48,6 +48,7 @@ struct proc_dir_entry * proc_mckinley_root __read_mostly = NULL;
|
||||||
void __init setup_cmdline(char **cmdline_p)
|
void __init setup_cmdline(char **cmdline_p)
|
||||||
{
|
{
|
||||||
extern unsigned int boot_args[];
|
extern unsigned int boot_args[];
|
||||||
|
char *p;
|
||||||
|
|
||||||
/* Collect stuff passed in from the boot loader */
|
/* Collect stuff passed in from the boot loader */
|
||||||
|
|
||||||
|
@ -56,9 +57,19 @@ void __init setup_cmdline(char **cmdline_p)
|
||||||
/* called from hpux boot loader */
|
/* called from hpux boot loader */
|
||||||
boot_command_line[0] = '\0';
|
boot_command_line[0] = '\0';
|
||||||
} else {
|
} else {
|
||||||
strlcpy(boot_command_line, (char *)__va(boot_args[1]),
|
strscpy(boot_command_line, (char *)__va(boot_args[1]),
|
||||||
COMMAND_LINE_SIZE);
|
COMMAND_LINE_SIZE);
|
||||||
|
|
||||||
|
/* autodetect console type (if not done by palo yet) */
|
||||||
|
p = boot_command_line;
|
||||||
|
if (!str_has_prefix(p, "console=") && !strstr(p, " console=")) {
|
||||||
|
strlcat(p, " console=", COMMAND_LINE_SIZE);
|
||||||
|
if (PAGE0->mem_cons.cl_class == CL_DUPLEX)
|
||||||
|
strlcat(p, "ttyS0", COMMAND_LINE_SIZE);
|
||||||
|
else
|
||||||
|
strlcat(p, "tty0", COMMAND_LINE_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_BLK_DEV_INITRD
|
#ifdef CONFIG_BLK_DEV_INITRD
|
||||||
if (boot_args[2] != 0) /* did palo pass us a ramdisk? */
|
if (boot_args[2] != 0) /* did palo pass us a ramdisk? */
|
||||||
{
|
{
|
||||||
|
@ -68,7 +79,7 @@ void __init setup_cmdline(char **cmdline_p)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
strcpy(command_line, boot_command_line);
|
strscpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
|
||||||
*cmdline_p = command_line;
|
*cmdline_p = command_line;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,9 +10,10 @@
|
||||||
#include <asm/pdc.h>
|
#include <asm/pdc.h>
|
||||||
#include <asm/pdc_chassis.h>
|
#include <asm/pdc_chassis.h>
|
||||||
#include <asm/ldcw.h>
|
#include <asm/ldcw.h>
|
||||||
|
#include <asm/processor.h>
|
||||||
|
|
||||||
static unsigned int __aligned(16) toc_lock = 1;
|
static unsigned int __aligned(16) toc_lock = 1;
|
||||||
DEFINE_PER_CPU_PAGE_ALIGNED(char [16384], toc_stack);
|
DEFINE_PER_CPU_PAGE_ALIGNED(char [16384], toc_stack) __visible;
|
||||||
|
|
||||||
static void toc20_to_pt_regs(struct pt_regs *regs, struct pdc_toc_pim_20 *toc)
|
static void toc20_to_pt_regs(struct pt_regs *regs, struct pdc_toc_pim_20 *toc)
|
||||||
{
|
{
|
||||||
|
|
|
@ -168,6 +168,11 @@
|
||||||
interrupts = <14>;
|
interrupts = <14>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
srnprot@d800060 {
|
||||||
|
compatible = "nintendo,hollywood-srnprot";
|
||||||
|
reg = <0x0d800060 0x4>;
|
||||||
|
};
|
||||||
|
|
||||||
GPIO: gpio@d8000c0 {
|
GPIO: gpio@d8000c0 {
|
||||||
#gpio-cells = <2>;
|
#gpio-cells = <2>;
|
||||||
compatible = "nintendo,hollywood-gpio";
|
compatible = "nintendo,hollywood-gpio";
|
||||||
|
|
|
@ -68,7 +68,7 @@ CONFIG_SND_SEQUENCER=y
|
||||||
CONFIG_SND_SEQUENCER_OSS=y
|
CONFIG_SND_SEQUENCER_OSS=y
|
||||||
# CONFIG_USB_SUPPORT is not set
|
# CONFIG_USB_SUPPORT is not set
|
||||||
CONFIG_RTC_CLASS=y
|
CONFIG_RTC_CLASS=y
|
||||||
CONFIG_RTC_DRV_GENERIC=y
|
CONFIG_RTC_DRV_GAMECUBE=y
|
||||||
CONFIG_EXT2_FS=y
|
CONFIG_EXT2_FS=y
|
||||||
CONFIG_EXT4_FS=y
|
CONFIG_EXT4_FS=y
|
||||||
CONFIG_ISO9660_FS=y
|
CONFIG_ISO9660_FS=y
|
||||||
|
|
|
@ -98,7 +98,7 @@ CONFIG_LEDS_TRIGGERS=y
|
||||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||||
CONFIG_LEDS_TRIGGER_PANIC=y
|
CONFIG_LEDS_TRIGGER_PANIC=y
|
||||||
CONFIG_RTC_CLASS=y
|
CONFIG_RTC_CLASS=y
|
||||||
CONFIG_RTC_DRV_GENERIC=y
|
CONFIG_RTC_DRV_GAMECUBE=y
|
||||||
CONFIG_NVMEM_NINTENDO_OTP=y
|
CONFIG_NVMEM_NINTENDO_OTP=y
|
||||||
CONFIG_EXT2_FS=y
|
CONFIG_EXT2_FS=y
|
||||||
CONFIG_EXT4_FS=y
|
CONFIG_EXT4_FS=y
|
||||||
|
|
|
@ -328,8 +328,6 @@ unsigned long __arch_hweight64(__u64 w);
|
||||||
#include <asm-generic/bitops/hweight.h>
|
#include <asm-generic/bitops/hweight.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <asm-generic/bitops/find.h>
|
|
||||||
|
|
||||||
/* wrappers that deal with KASAN instrumentation */
|
/* wrappers that deal with KASAN instrumentation */
|
||||||
#include <asm-generic/bitops/instrumented-atomic.h>
|
#include <asm-generic/bitops/instrumented-atomic.h>
|
||||||
#include <asm-generic/bitops/instrumented-lock.h>
|
#include <asm-generic/bitops/instrumented-lock.h>
|
||||||
|
|
|
@ -223,6 +223,8 @@ static __always_inline void update_user_segments(u32 val)
|
||||||
update_user_segment(15, val);
|
update_user_segment(15, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int __init find_free_bat(void);
|
||||||
|
unsigned int bat_block_size(unsigned long base, unsigned long top);
|
||||||
#endif /* !__ASSEMBLY__ */
|
#endif /* !__ASSEMBLY__ */
|
||||||
|
|
||||||
/* We happily ignore the smaller BATs on 601, we don't actually use
|
/* We happily ignore the smaller BATs on 601, we don't actually use
|
||||||
|
|
|
@ -473,7 +473,7 @@ static inline bool arch_irq_disabled_regs(struct pt_regs *regs)
|
||||||
return !(regs->msr & MSR_EE);
|
return !(regs->msr & MSR_EE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool should_hard_irq_enable(void)
|
static __always_inline bool should_hard_irq_enable(void)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue