mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 18:41:58 +09:00
Merge commit '87d2d0e0e101b0833a969a5de3d88d0e395b5b99'
* commit '87d2d0e0e101b0833a969a5de3d88d0e395b5b99': (31 commits) Revert "Documentation: DT: ASoC: add for rockchip HDMIIn" Revert "Documentation: DT: ASoC: add toshiba tc358749x" Revert "ASoC: dw-hdmi-audio: add dummy codec for DesignWare hdmi" Revert "Documentation: sound: add rt3261 codec documentation." Revert "ASoC: Add gva codec driver" Revert "drm/panel: add support for Sharp F402 2048x1536 panel" Revert "drm/panel: simple: Add support for LG LM270WR3-SSA1" Revert "drm/panel: simple: Add support for LG LM238WR2-SPA1" Revert "drm/panel: simple: Add support for INNOLUX N125HCE-GPA 1920x1080 panel" Revert "drm/panel: simple: Add support for BOE NV124FHM-N73 1920x1080 panel" Revert "drm/panel: simple: Add support for BOE MV270QUM-N10" Revert "drm/panel: simple: Add support for BOE MV238QUM-N20" Revert "drm/panel: simple: Add support for AUO B125HAN03.1 1920x1080 panel" Revert "dt-bindings: Add support for AUO B101EW05 1280x800 panel" ARM: dts: rockchip: rk3506-evb2-v10: update matrix-keypad arm64: dts: rockchip: rk3576-evb2: Remove vcc3v3_lcd_n mmc: dw_mmc: Explicitly include linux/pinctrl/consumer.h for pinctrl_select_state regulator: rk806: Explicitly include linux/pinctrl/consumer.h mfd: rk806: Explicitly include linux/pinctrl/consumer.h ASoC: aw87xxx: Explicitly include vmalloc.h ... Change-Id: I92454eb4f7dbb62795f6d4a1dacaae749f9f81b3
This commit is contained in:
@@ -1,7 +0,0 @@
|
||||
AU Optronics Corporation 10.1" WSVGA TFT LCD panel
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "auo,b101ew05"
|
||||
|
||||
This binding is compatible with the simple-panel binding, which is specified
|
||||
in simple-panel.txt in this directory.
|
||||
@@ -1,7 +0,0 @@
|
||||
AU Optronics Corporation 12.5" FHD TFT LCD panel
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "auo,b125han03"
|
||||
|
||||
This binding is compatible with the simple-panel binding, which is specified
|
||||
in simple-panel.txt in this directory.
|
||||
@@ -1,9 +0,0 @@
|
||||
Boe Corporation 23.8" UHD TFT LCD panel
|
||||
|
||||
It has been designed to apply eDP(HBR2, 5.4Gbps) interface.
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "boe,mv238qum-n20"
|
||||
|
||||
This binding is compatible with the simple-panel binding, which is specified
|
||||
in simple-panel.txt in this directory.
|
||||
@@ -1,9 +0,0 @@
|
||||
Boe Corporation 27" UHD TFT LCD panel
|
||||
|
||||
It has been designed to apply eDP(HBR2, 5.4Gbps) interface.
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "boe,mv270qum-n10"
|
||||
|
||||
This binding is compatible with the simple-panel binding, which is specified
|
||||
in simple-panel.txt in this directory.
|
||||
@@ -1,7 +0,0 @@
|
||||
Boe Corporation 12.5" FHD TFT LCD panel
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "boe,nv125fhm-n73"
|
||||
|
||||
This binding is compatible with the simple-panel binding, which is specified
|
||||
in simple-panel.txt in this directory.
|
||||
@@ -1,7 +0,0 @@
|
||||
Innolux Corporation 12.5" FHD (1920x1080) TFT LCD panel
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "innolux,n125hce"
|
||||
|
||||
This binding is compatible with the simple-panel binding, which is specified
|
||||
in simple-panel.txt in this directory.
|
||||
@@ -1,9 +0,0 @@
|
||||
LG Corporation 23.8" UHD TFT LCD panel
|
||||
|
||||
It has been designed to apply eDP(HBR2, 5.4Gbps) interface.
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "lg,lm238wr2-spa1"
|
||||
|
||||
This binding is compatible with the simple-panel binding, which is specified
|
||||
in simple-panel.txt in this directory.
|
||||
@@ -1,9 +0,0 @@
|
||||
LG Corporation 27" UHD TFT LCD panel
|
||||
|
||||
It has been designed to apply eDP(HBR2, 5.4Gbps) interface.
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "lg,lm270wr3-ssa1"
|
||||
|
||||
This binding is compatible with the simple-panel binding, which is specified
|
||||
in simple-panel.txt in this directory.
|
||||
@@ -1,7 +0,0 @@
|
||||
Sharp F402 (2048x1536 pexels) TFT LCD panel
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "sharp,lcd-f402"
|
||||
|
||||
This binding is compatible with the simple-panel binding, which is specified
|
||||
in simple-panel.txt in this directory.
|
||||
@@ -1,5 +0,0 @@
|
||||
dw hdmi audio interface
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : Should be "dw-hdmi-audio".
|
||||
@@ -1,14 +0,0 @@
|
||||
GVA audio virtual codec
|
||||
|
||||
This device support generic audio link.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "rockchip,gva-codec"
|
||||
|
||||
Example:
|
||||
|
||||
codec: gva_codec {
|
||||
compatible = "rockchip,gva-codec";
|
||||
#sound-dai-cells = <0>;
|
||||
};
|
||||
@@ -1,16 +0,0 @@
|
||||
ROCKCHIP with RT5651_TC358749X CODECS
|
||||
|
||||
Required properties:
|
||||
- compatible: "rockchip,rockchip-rt5651-tc358749x-sound"
|
||||
- rockchip,cpu: CPU DAI, The phandle of the Rockchip I2S controller that's
|
||||
connected to the CODEC
|
||||
- rockchip,audio-codec: The phandle of the RT5651 TC358749x audio codec
|
||||
|
||||
Example:
|
||||
|
||||
sound {
|
||||
compatible = "rockchip,rockchip-rt5651-tc358749x-sound";
|
||||
rockchip,cpu = <&i2s0>;
|
||||
rockchip,codec = <&rt5651 &rt5651 &tc358749x>;
|
||||
status = "okay";
|
||||
};
|
||||
@@ -1,31 +0,0 @@
|
||||
rt3261 audio CODEC
|
||||
|
||||
This device supports I2C only.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "rt3261"
|
||||
|
||||
- reg : the I2C address of the device.
|
||||
|
||||
- codec-en-gpio : the enable gpio of codec.
|
||||
|
||||
- spk-num : the number of speaker.
|
||||
|
||||
- modem-input-mode : modem input mode (DIFFERENTIAL/SINGLE_END).
|
||||
|
||||
- lout-to-modem_mode : line out mode.
|
||||
|
||||
- spk-amplify : Gain control for speaker.
|
||||
|
||||
Example:
|
||||
|
||||
rt3261: rt3261@1c {
|
||||
compatible = "rt3261";
|
||||
reg = <0x1c>;
|
||||
codec-en-gpio = <&gpio3 GPIO_D7 GPIO_ACTIVE_HIGH>;
|
||||
spk-num= <2>;
|
||||
modem-input-mode = <1>;
|
||||
lout-to-modem_mode = <1>;
|
||||
spk-amplify = <2>;
|
||||
};
|
||||
@@ -1,32 +0,0 @@
|
||||
Toshiba tc358749x audio CODEC
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: "toshiba,tc358749x"
|
||||
- reg: the I2C address of the device for I2C
|
||||
- power-gpios: tc358749x 1.2v power control gpio
|
||||
- power18-gpios: tc358749x 1.8v power control gpio
|
||||
- power33-gpios: tc358749x 3.3v power control gpio
|
||||
- csi-ctl-gpios: rk3399-sapphire hw csi select control
|
||||
- stanby-gpios: tc358749x stanby pin control
|
||||
- reset-gpios: tc358749x reset pin control
|
||||
- int-gpios: tc358749x interrupt pin control gpio
|
||||
- pinctrl-names: must contain a "default" entry.
|
||||
- pinctrl-0: pin control group to be used for gpio.
|
||||
|
||||
Example:
|
||||
|
||||
tc358749x: tc358749x@0f {
|
||||
compatible = "toshiba,tc358749x";
|
||||
reg = <0x0f>;
|
||||
power-gpios = <&gpio2 6 GPIO_ACTIVE_HIGH>;
|
||||
power18-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>;
|
||||
power33-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
|
||||
csi-ctl-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
|
||||
stanby-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>;
|
||||
reset-gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
|
||||
int-gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&hdmiin_gpios>;
|
||||
status = "okay";
|
||||
};
|
||||
@@ -91,31 +91,53 @@
|
||||
|
||||
matrix-keypad {
|
||||
compatible = "gpio-matrix-keypad";
|
||||
debounce-delay-ms = <5>;
|
||||
col-scan-delay-us = <2>;
|
||||
//linux,no-autorepeat = <1>;
|
||||
debounce-delay-ms = <30>;
|
||||
col-scan-delay-us = <100>;
|
||||
wakeup-source;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&keypad_pins>;
|
||||
|
||||
col-gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW
|
||||
&gpio0 RK_PC1 GPIO_ACTIVE_LOW
|
||||
&gpio0 RK_PC2 GPIO_ACTIVE_LOW
|
||||
&gpio0 RK_PC3 GPIO_ACTIVE_LOW
|
||||
&gpio0 RK_PC4 GPIO_ACTIVE_LOW>;
|
||||
linux,no-autorepeat;
|
||||
drive-inactive-cols;
|
||||
|
||||
row-gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_LOW
|
||||
&gpio0 RK_PB4 GPIO_ACTIVE_LOW
|
||||
&gpio0 RK_PB5 GPIO_ACTIVE_LOW
|
||||
&gpio0 RK_PB6 GPIO_ACTIVE_LOW
|
||||
&gpio0 RK_PB7 GPIO_ACTIVE_LOW>;
|
||||
col-gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH
|
||||
&gpio0 RK_PC1 GPIO_ACTIVE_HIGH
|
||||
&gpio0 RK_PC2 GPIO_ACTIVE_HIGH
|
||||
&gpio0 RK_PC3 GPIO_ACTIVE_HIGH
|
||||
&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
row-gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH
|
||||
&gpio0 RK_PB4 GPIO_ACTIVE_HIGH
|
||||
&gpio0 RK_PB5 GPIO_ACTIVE_HIGH
|
||||
&gpio0 RK_PB6 GPIO_ACTIVE_HIGH
|
||||
&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
linux,keymap = <
|
||||
MATRIX_KEY(0, 0, KEY_NUMERIC_1) MATRIX_KEY(0, 1, KEY_NUMERIC_2) MATRIX_KEY(0, 2, KEY_NUMERIC_3) MATRIX_KEY(0, 3, KEY_UP) MATRIX_KEY(0, 4, KEY_DOWN)
|
||||
MATRIX_KEY(1, 0, KEY_NUMERIC_4) MATRIX_KEY(1, 1, KEY_NUMERIC_5) MATRIX_KEY(1, 2, KEY_NUMERIC_6) MATRIX_KEY(1, 3, KEY_LEFT) MATRIX_KEY(1, 4, KEY_RIGHT)
|
||||
MATRIX_KEY(2, 0, KEY_NUMERIC_7) MATRIX_KEY(0, 1, KEY_NUMERIC_8) MATRIX_KEY(0, 2, KEY_NUMERIC_9) MATRIX_KEY(0, 3, KEY_OK) MATRIX_KEY(0, 4, KEY_MUTE)
|
||||
MATRIX_KEY(3, 0, KEY_NUMERIC_STAR) MATRIX_KEY(0, 1, KEY_NUMERIC_0) MATRIX_KEY(0, 2, KEY_NUMERIC_POUND) MATRIX_KEY(0, 3, KEY_SOUND) MATRIX_KEY(0, 4, KEY_VOLUMEDOWN)
|
||||
MATRIX_KEY(4, 0, KEY_F1) MATRIX_KEY(0, 1, KEY_F2) MATRIX_KEY(0, 2, KEY_F3) MATRIX_KEY(0, 3, KEY_F4) MATRIX_KEY(0, 4, KEY_VOLUMEUP)
|
||||
MATRIX_KEY(0, 0, KEY_NUMERIC_1)
|
||||
MATRIX_KEY(0, 1, KEY_NUMERIC_2)
|
||||
MATRIX_KEY(0, 2, KEY_NUMERIC_3)
|
||||
MATRIX_KEY(0, 3, KEY_UP)
|
||||
MATRIX_KEY(0, 4, KEY_DOWN)
|
||||
MATRIX_KEY(1, 0, KEY_NUMERIC_4)
|
||||
MATRIX_KEY(1, 1, KEY_NUMERIC_5)
|
||||
MATRIX_KEY(1, 2, KEY_NUMERIC_6)
|
||||
MATRIX_KEY(1, 3, KEY_LEFT)
|
||||
MATRIX_KEY(1, 4, KEY_RIGHT)
|
||||
MATRIX_KEY(2, 0, KEY_NUMERIC_7)
|
||||
MATRIX_KEY(2, 1, KEY_NUMERIC_8)
|
||||
MATRIX_KEY(2, 2, KEY_NUMERIC_9)
|
||||
MATRIX_KEY(2, 3, KEY_OK)
|
||||
MATRIX_KEY(2, 4, KEY_MUTE)
|
||||
MATRIX_KEY(3, 0, KEY_NUMERIC_STAR)
|
||||
MATRIX_KEY(3, 1, KEY_NUMERIC_0)
|
||||
MATRIX_KEY(3, 2, KEY_NUMERIC_POUND)
|
||||
MATRIX_KEY(3, 3, KEY_SOUND)
|
||||
MATRIX_KEY(3, 4, KEY_VOLUMEDOWN)
|
||||
MATRIX_KEY(4, 0, KEY_F1)
|
||||
MATRIX_KEY(4, 1, KEY_F2)
|
||||
MATRIX_KEY(4, 2, KEY_F3)
|
||||
MATRIX_KEY(4, 3, KEY_F4)
|
||||
MATRIX_KEY(4, 4, KEY_VOLUMEUP)
|
||||
>;
|
||||
|
||||
status = "okay";
|
||||
@@ -619,13 +641,12 @@
|
||||
<0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_down>,
|
||||
<0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>,
|
||||
<0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_down>,
|
||||
<0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_down>,
|
||||
/* keyboard cols(0~4) */
|
||||
<0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_down>,
|
||||
<0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>,
|
||||
<0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>,
|
||||
<0 RK_PC3 RK_FUNC_GPIO &pcfg_pull_down>,
|
||||
<0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_down>;
|
||||
<0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>,
|
||||
<0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>,
|
||||
<0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>,
|
||||
<0 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>,
|
||||
<0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -164,15 +164,6 @@
|
||||
vin-supply = <&vcc_sys>;
|
||||
};
|
||||
|
||||
vcc3v3_lcd_n: vcc3v3-lcd0-n {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc3v3_lcd0_n";
|
||||
regulator-boot-on;
|
||||
enable-active-high;
|
||||
gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;
|
||||
vin-supply = <&vcc_3v3_s0>;
|
||||
};
|
||||
|
||||
vcc3v3_image_pwren: image-pwren {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc3v3_image_pwren";
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/syscore_ops.h>
|
||||
#include <dt-bindings/clock/rk1808-cru.h>
|
||||
#include "clk.h"
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/syscore_ops.h>
|
||||
#include <dt-bindings/clock/rk3328-cru.h>
|
||||
#include "clk.h"
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <linux/ptrace.h>
|
||||
#include <linux/sched/clock.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <soc/rockchip/rockchip_sip.h>
|
||||
|
||||
#ifdef CONFIG_64BIT
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_gpio.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/reset.h>
|
||||
#include <linux/mfd/syscon.h>
|
||||
|
||||
@@ -730,12 +730,23 @@ static void rockchip_drm_mode_fixup(struct drm_crtc_state *crtc_state,
|
||||
const struct drm_crtc_helper_funcs *crtc_funcs;
|
||||
struct drm_encoder *encoder = conn_state->best_encoder;
|
||||
struct drm_crtc *crtc = crtc_state->crtc;
|
||||
struct drm_bridge *bridge;
|
||||
struct drm_bridge_state *bridge_state;
|
||||
int ret;
|
||||
|
||||
ret = drm_atomic_set_mode_for_crtc(crtc_state, adj_mode);
|
||||
if (ret)
|
||||
return;
|
||||
|
||||
bridge = drm_bridge_chain_get_first_bridge(encoder);
|
||||
if (bridge) {
|
||||
bridge_state = drm_atomic_get_bridge_state(crtc_state->state, bridge);
|
||||
if (IS_ERR(bridge_state))
|
||||
return;
|
||||
|
||||
drm_atomic_bridge_chain_check(bridge, crtc_state, conn_state);
|
||||
}
|
||||
|
||||
encoder_funcs = encoder->helper_private;
|
||||
if (encoder_funcs && encoder_funcs->atomic_check)
|
||||
encoder_funcs->atomic_check(encoder, crtc_state, conn_state);
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <linux/mfd/syscon.h>
|
||||
#include <linux/nvmem-consumer.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ config TOUCHSCREEN_CYPRESS_CYTTSP5_SPI
|
||||
module will be called cyttsp5_spi.
|
||||
|
||||
choice
|
||||
bool "Parade TrueTouch Gen5 MultiTouch Protocol"
|
||||
prompt "Parade TrueTouch Gen5 MultiTouch Protocol"
|
||||
depends on TOUCHSCREEN_CYPRESS_CYTTSP5
|
||||
default TOUCHSCREEN_CYPRESS_CYTTSP5_MT_B
|
||||
help
|
||||
|
||||
@@ -68,7 +68,7 @@ config TOUCHSCREEN_PARADE_SPI
|
||||
module will be called pt_spi.
|
||||
|
||||
choice
|
||||
bool "Parade TrueTouch Gen5 MultiTouch Protocol"
|
||||
prompt "Parade TrueTouch Gen5 MultiTouch Protocol"
|
||||
depends on TOUCHSCREEN_PARADE
|
||||
default TOUCHSCREEN_PARADE_MT_B
|
||||
help
|
||||
|
||||
@@ -99,7 +99,7 @@ obj-$(CONFIG_VIDEO_IMX412) += imx412.o
|
||||
obj-$(CONFIG_VIDEO_IMX415) += imx415.o
|
||||
obj-$(CONFIG_VIDEO_IMX464) += imx464.o
|
||||
obj-$(CONFIG_VIDEO_IMX492) += imx492.o
|
||||
obj-$(CONFIG_VIDEO_IMX492) += imx498.o
|
||||
obj-$(CONFIG_VIDEO_IMX498) += imx498.o
|
||||
obj-$(CONFIG_VIDEO_IMX577) += imx577.o
|
||||
obj-$(CONFIG_VIDEO_IMX586) += imx586.o
|
||||
obj-$(CONFIG_VIDEO_IR_I2C) += ir-kbd-i2c.o
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_gpio.h>
|
||||
#include <linux/pinctrl/consumer.h>
|
||||
#include <linux/spi/spi.h>
|
||||
|
||||
#define TSD_TEMP_140 0x00
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <linux/ktime.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/pinctrl/consumer.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/prandom.h>
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/pinctrl/consumer.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regulator/driver.h>
|
||||
#include "internal.h"
|
||||
|
||||
@@ -22,7 +22,7 @@ comment "Rockchip Flash Devices"
|
||||
config RK_SFTL
|
||||
tristate "Rockchip Slc Nand FTL support"
|
||||
default y
|
||||
depends on (RK_NANDC_NAND || (RK_SFC_NAND && RK_SFC_NAND_MTD !=y))
|
||||
depends on (RK_NANDC_NAND || (RK_SFC_NAND && !RK_SFC_NAND_MTD))
|
||||
help
|
||||
This enables support for Slc Nand FTL.
|
||||
|
||||
|
||||
@@ -17,6 +17,59 @@
|
||||
|
||||
#ifdef CONFIG_ROCKCHIP_RKNPU_DMA_HEAP
|
||||
|
||||
#if KERNEL_VERSION(6, 1, 115) < LINUX_VERSION_CODE
|
||||
#ifdef CONFIG_ARM64
|
||||
/*
|
||||
* Check whether a kernel address is valid (derived from arch/x86/).
|
||||
*/
|
||||
static int kern_addr_valid(unsigned long addr)
|
||||
{
|
||||
pgd_t *pgdp;
|
||||
p4d_t *p4dp;
|
||||
pud_t *pudp, pud;
|
||||
pmd_t *pmdp, pmd;
|
||||
pte_t *ptep, pte;
|
||||
|
||||
addr = arch_kasan_reset_tag(addr);
|
||||
if ((((long)addr) >> VA_BITS) != -1UL)
|
||||
return 0;
|
||||
|
||||
pgdp = pgd_offset_k(addr);
|
||||
if (pgd_none(READ_ONCE(*pgdp)))
|
||||
return 0;
|
||||
|
||||
p4dp = p4d_offset(pgdp, addr);
|
||||
if (p4d_none(READ_ONCE(*p4dp)))
|
||||
return 0;
|
||||
|
||||
pudp = pud_offset(p4dp, addr);
|
||||
pud = READ_ONCE(*pudp);
|
||||
if (pud_none(pud))
|
||||
return 0;
|
||||
|
||||
if (pud_sect(pud))
|
||||
return pfn_valid(pud_pfn(pud));
|
||||
|
||||
pmdp = pmd_offset(pudp, addr);
|
||||
pmd = READ_ONCE(*pmdp);
|
||||
if (pmd_none(pmd))
|
||||
return 0;
|
||||
|
||||
if (pmd_sect(pmd))
|
||||
return pfn_valid(pmd_pfn(pmd));
|
||||
|
||||
ptep = pte_offset_kernel(pmdp, addr);
|
||||
pte = READ_ONCE(*ptep);
|
||||
if (pte_none(pte))
|
||||
return 0;
|
||||
|
||||
return pfn_valid(pte_pfn(pte));
|
||||
}
|
||||
#else
|
||||
#define kern_addr_valid(addr) (1)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
int rknpu_mem_create_ioctl(struct rknpu_device *rknpu_dev, struct file *file,
|
||||
unsigned int cmd, unsigned long data)
|
||||
{
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
#include <linux/hrtimer.h>
|
||||
#include <linux/ktime.h>
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <uapi/sound/asound.h>
|
||||
#include <sound/control.h>
|
||||
#include <sound/soc.h>
|
||||
|
||||
Reference in New Issue
Block a user