mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-21 22:47:51 -04:00
Merge tag 'soc-fixes-7.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
Pull SoC fixes from Arnd Bergmann:
"There are only three devicetree fixes this time: one critical memory
corruption fix for Renesas and three minor corrections for Tegra.
The MAINTAINERS file is updated for a new maintainer of the CIX
platform and two address changes.
The rest is all driver fixes, mostly firmware:
- multiple runtime issues in ARM SCMI and FF-A firmware code, dealing
with error handling for corner cases in firmware.
- multiple fixes for reset drivers, dealing with individual platform
specific mistakes and more error handling
- minor build and runtime fixes for the Tegra SoC drivers"
* tag 'soc-fixes-7.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
arm64: dts: renesas: ironhide: Describe inline ECC carveouts
MAINTAINERS: Update maintainer and git tree for CIX SoC
ARM: Don't let ARMv5 platforms select USE_OF
MAINTAINERS: Update SpacemiT SoC git tree repository
firmware: arm_scmi: Rate-limit queue-full warnings in IRQ context
firmware: arm_scmi: Use 64-bit division for clock rate rounding
reset: imx7: Correct polarity of MIPI CSI resets on i.MX8MQ
reset: sunxi: fix memory region leak on ioremap failure
dt-bindings: reset: altr: add COMBOPHY_RESET for Agilex5
reset: spacemit: k3: fix USB2 ahb reset
firmware: arm_scmi: Grammar s/may needed/may be needed/
firmware: arm_ffa: Fix NULL dereference in ffa_partition_info_get()
firmware: arm_ffa: Respect firmware advertised RX/TX buffer size limits
arm64: tegra: Fix CPU1 node unit-address on Tegra264
arm64: tegra: Fix CPU compatible string to cortex-a78ae on Tegra234
MAINTAINERS: .mailmap: update Jens Wiklander's email address
soc/tegra: fuse: Fix spurious straps warning on SMCCC platforms
soc/tegra: pmc: fix #ifdef block in header
drm/tegra: Fix a strange error handling path
arm64: tegra: Remove fallback compatible for GPCDMA
This commit is contained in:
1
.mailmap
1
.mailmap
@@ -399,6 +399,7 @@ Jens Axboe <axboe@kernel.dk> <jens.axboe@oracle.com>
|
||||
Jens Axboe <axboe@kernel.dk> <axboe@fb.com>
|
||||
Jens Axboe <axboe@kernel.dk> <axboe@meta.com>
|
||||
Jens Osterkamp <Jens.Osterkamp@de.ibm.com>
|
||||
Jens Wiklander <jenswi@kernel.org> <jens.wiklander@linaro.org>
|
||||
Jernej Skrabec <jernej.skrabec@gmail.com> <jernej.skrabec@siol.net>
|
||||
Jesper Dangaard Brouer <hawk@kernel.org> <brouer@redhat.com>
|
||||
Jesper Dangaard Brouer <hawk@kernel.org> <hawk@comx.dk>
|
||||
|
||||
12
MAINTAINERS
12
MAINTAINERS
@@ -2767,12 +2767,12 @@ F: arch/arm/mach-ep93xx/
|
||||
F: drivers/iio/adc/ep93xx_adc.c
|
||||
|
||||
ARM/CIX SOC SUPPORT
|
||||
M: Peter Chen <peter.chen@cixtech.com>
|
||||
M: Gary Yang <gary.yang@cixtech.com>
|
||||
M: Fugang Duan <fugang.duan@cixtech.com>
|
||||
R: CIX Linux Kernel Upstream Group <cix-kernel-upstream@cixtech.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/cix.git
|
||||
T: git https://github.com/cixtech/linux-mainline.git
|
||||
F: Documentation/devicetree/bindings/arm/cix.yaml
|
||||
F: Documentation/devicetree/bindings/mailbox/cix,sky1-mbox.yaml
|
||||
F: arch/arm64/boot/dts/cix/
|
||||
@@ -20197,7 +20197,7 @@ W: http://www.onsemi.com
|
||||
F: drivers/net/phy/ncn*
|
||||
|
||||
OP-TEE DRIVER
|
||||
M: Jens Wiklander <jens.wiklander@linaro.org>
|
||||
M: Jens Wiklander <jenswi@kernel.org>
|
||||
L: op-tee@lists.trustedfirmware.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: Documentation/ABI/testing/sysfs-bus-optee-devices
|
||||
@@ -23315,7 +23315,7 @@ L: spacemit@lists.linux.dev
|
||||
S: Maintained
|
||||
W: https://github.com/spacemit-com/linux/wiki
|
||||
C: irc://irc.libera.chat/spacemit
|
||||
T: git https://github.com/spacemit-com/linux
|
||||
T: https://git.kernel.org/pub/scm/linux/kernel/git/spacemit/linux.git
|
||||
F: arch/riscv/boot/dts/spacemit/
|
||||
N: spacemit
|
||||
K: spacemit
|
||||
@@ -23574,7 +23574,7 @@ F: Documentation/devicetree/bindings/media/allwinner,sun8i-a83t-de2-rotate.yaml
|
||||
F: drivers/media/platform/sunxi/sun8i-rotate/
|
||||
|
||||
RPMB SUBSYSTEM
|
||||
M: Jens Wiklander <jens.wiklander@linaro.org>
|
||||
M: Jens Wiklander <jenswi@kernel.org>
|
||||
L: linux-kernel@vger.kernel.org
|
||||
S: Supported
|
||||
F: drivers/misc/rpmb-core.c
|
||||
@@ -26528,7 +26528,7 @@ F: drivers/media/i2c/tw9910.c
|
||||
F: include/media/i2c/tw9910.h
|
||||
|
||||
TEE SUBSYSTEM
|
||||
M: Jens Wiklander <jens.wiklander@linaro.org>
|
||||
M: Jens Wiklander <jenswi@kernel.org>
|
||||
R: Sumit Garg <sumit.garg@kernel.org>
|
||||
L: op-tee@lists.trustedfirmware.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
|
||||
@@ -14,6 +14,5 @@ menuconfig ARCH_IXP4XX
|
||||
select IXP4XX_TIMER
|
||||
select USB_EHCI_BIG_ENDIAN_DESC
|
||||
select USB_EHCI_BIG_ENDIAN_MMIO
|
||||
select USE_OF
|
||||
help
|
||||
Support for Intel's IXP4XX (XScale) family of processors.
|
||||
|
||||
@@ -22,7 +22,6 @@ config MACH_PXA25X_DT
|
||||
select PINCTRL
|
||||
select POWER_SUPPLY
|
||||
select PXA25x
|
||||
select USE_OF
|
||||
help
|
||||
Include support for Marvell PXA25x based platforms using
|
||||
the device tree. Needn't select any other machine while
|
||||
@@ -33,7 +32,6 @@ config MACH_PXA27X_DT
|
||||
select PINCTRL
|
||||
select POWER_SUPPLY
|
||||
select PXA27x
|
||||
select USE_OF
|
||||
help
|
||||
Include support for Marvell PXA27x based platforms using
|
||||
the device tree. Needn't select any other machine while
|
||||
@@ -47,7 +45,6 @@ config MACH_PXA3XX_DT
|
||||
select PINCTRL
|
||||
select POWER_SUPPLY
|
||||
select PXA3xx
|
||||
select USE_OF
|
||||
help
|
||||
Include support for Marvell PXA3xx based platforms using
|
||||
the device tree. Needn't select any other machine while
|
||||
|
||||
@@ -5355,7 +5355,7 @@ cpus {
|
||||
#size-cells = <0>;
|
||||
|
||||
cpu0_0: cpu@0 {
|
||||
compatible = "arm,cortex-a78";
|
||||
compatible = "arm,cortex-a78ae";
|
||||
device_type = "cpu";
|
||||
reg = <0x00000>;
|
||||
|
||||
@@ -5374,7 +5374,7 @@ cpu0_0: cpu@0 {
|
||||
};
|
||||
|
||||
cpu0_1: cpu@100 {
|
||||
compatible = "arm,cortex-a78";
|
||||
compatible = "arm,cortex-a78ae";
|
||||
device_type = "cpu";
|
||||
reg = <0x00100>;
|
||||
|
||||
@@ -5393,7 +5393,7 @@ cpu0_1: cpu@100 {
|
||||
};
|
||||
|
||||
cpu0_2: cpu@200 {
|
||||
compatible = "arm,cortex-a78";
|
||||
compatible = "arm,cortex-a78ae";
|
||||
device_type = "cpu";
|
||||
reg = <0x00200>;
|
||||
|
||||
@@ -5412,7 +5412,7 @@ cpu0_2: cpu@200 {
|
||||
};
|
||||
|
||||
cpu0_3: cpu@300 {
|
||||
compatible = "arm,cortex-a78";
|
||||
compatible = "arm,cortex-a78ae";
|
||||
device_type = "cpu";
|
||||
reg = <0x00300>;
|
||||
|
||||
@@ -5431,7 +5431,7 @@ cpu0_3: cpu@300 {
|
||||
};
|
||||
|
||||
cpu1_0: cpu@10000 {
|
||||
compatible = "arm,cortex-a78";
|
||||
compatible = "arm,cortex-a78ae";
|
||||
device_type = "cpu";
|
||||
reg = <0x10000>;
|
||||
|
||||
@@ -5450,7 +5450,7 @@ cpu1_0: cpu@10000 {
|
||||
};
|
||||
|
||||
cpu1_1: cpu@10100 {
|
||||
compatible = "arm,cortex-a78";
|
||||
compatible = "arm,cortex-a78ae";
|
||||
device_type = "cpu";
|
||||
reg = <0x10100>;
|
||||
|
||||
@@ -5469,7 +5469,7 @@ cpu1_1: cpu@10100 {
|
||||
};
|
||||
|
||||
cpu1_2: cpu@10200 {
|
||||
compatible = "arm,cortex-a78";
|
||||
compatible = "arm,cortex-a78ae";
|
||||
device_type = "cpu";
|
||||
reg = <0x10200>;
|
||||
|
||||
@@ -5488,7 +5488,7 @@ cpu1_2: cpu@10200 {
|
||||
};
|
||||
|
||||
cpu1_3: cpu@10300 {
|
||||
compatible = "arm,cortex-a78";
|
||||
compatible = "arm,cortex-a78ae";
|
||||
device_type = "cpu";
|
||||
reg = <0x10300>;
|
||||
|
||||
@@ -5507,7 +5507,7 @@ cpu1_3: cpu@10300 {
|
||||
};
|
||||
|
||||
cpu2_0: cpu@20000 {
|
||||
compatible = "arm,cortex-a78";
|
||||
compatible = "arm,cortex-a78ae";
|
||||
device_type = "cpu";
|
||||
reg = <0x20000>;
|
||||
|
||||
@@ -5526,7 +5526,7 @@ cpu2_0: cpu@20000 {
|
||||
};
|
||||
|
||||
cpu2_1: cpu@20100 {
|
||||
compatible = "arm,cortex-a78";
|
||||
compatible = "arm,cortex-a78ae";
|
||||
device_type = "cpu";
|
||||
reg = <0x20100>;
|
||||
|
||||
@@ -5545,7 +5545,7 @@ cpu2_1: cpu@20100 {
|
||||
};
|
||||
|
||||
cpu2_2: cpu@20200 {
|
||||
compatible = "arm,cortex-a78";
|
||||
compatible = "arm,cortex-a78ae";
|
||||
device_type = "cpu";
|
||||
reg = <0x20200>;
|
||||
|
||||
@@ -5564,7 +5564,7 @@ cpu2_2: cpu@20200 {
|
||||
};
|
||||
|
||||
cpu2_3: cpu@20300 {
|
||||
compatible = "arm,cortex-a78";
|
||||
compatible = "arm,cortex-a78ae";
|
||||
device_type = "cpu";
|
||||
reg = <0x20300>;
|
||||
|
||||
|
||||
@@ -3208,7 +3208,7 @@ agic_page5: interrupt-controller@99b0000 {
|
||||
};
|
||||
|
||||
gpcdma: dma-controller@8400000 {
|
||||
compatible = "nvidia,tegra264-gpcdma", "nvidia,tegra186-gpcdma";
|
||||
compatible = "nvidia,tegra264-gpcdma";
|
||||
reg = <0x0 0x08400000 0x0 0x210000>;
|
||||
interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>,
|
||||
@@ -4070,7 +4070,7 @@ cpu0: cpu@0 {
|
||||
d-cache-sets = <256>;
|
||||
};
|
||||
|
||||
cpu1: cpu@1 {
|
||||
cpu1: cpu@10000 {
|
||||
compatible = "arm,neoverse-v3ae";
|
||||
device_type = "cpu";
|
||||
reg = <0x10000>;
|
||||
|
||||
@@ -107,6 +107,47 @@ tee@8c400000 {
|
||||
reg = <0x0 0x8c400000 0x0 0x02000000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
/* DRAM controller inline ECC areas */
|
||||
ecc@10cccc0000 {
|
||||
reg = <0x10 0xcccc0000 0x0 0x33340000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
ecc@12cccc0000 {
|
||||
reg = <0x12 0xcccc0000 0x0 0x33340000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
ecc@14cccc0000 {
|
||||
reg = <0x14 0xcccc0000 0x0 0x33340000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
ecc@16cccc0000 {
|
||||
reg = <0x16 0xcccc0000 0x0 0x33340000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
ecc@18cccc0000 {
|
||||
reg = <0x18 0xcccc0000 0x0 0x33340000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
ecc@1a66660000 {
|
||||
reg = <0x1a 0x66660000 0x0 0x999a0000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
ecc@1c66660000 {
|
||||
reg = <0x1c 0x66660000 0x0 0x999a0000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
ecc@1e66660000 {
|
||||
reg = <0x1e 0x66660000 0x0 0x999a0000>;
|
||||
no-map;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/minmax.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/mutex.h>
|
||||
@@ -59,7 +60,9 @@
|
||||
(FIELD_PREP(SENDER_ID_MASK, (s)) | FIELD_PREP(RECEIVER_ID_MASK, (r)))
|
||||
|
||||
#define RXTX_MAP_MIN_BUFSZ_MASK GENMASK(1, 0)
|
||||
#define RXTX_MAP_MIN_BUFSZ(x) ((x) & RXTX_MAP_MIN_BUFSZ_MASK)
|
||||
#define RXTX_MAP_MAX_BUFSZ_MASK GENMASK(31, 16)
|
||||
#define RXTX_MAP_MIN_BUFSZ(x) (FIELD_GET(RXTX_MAP_MIN_BUFSZ_MASK, (x)))
|
||||
#define RXTX_MAP_MAX_BUFSZ(x) (FIELD_GET(RXTX_MAP_MAX_BUFSZ_MASK, (x)))
|
||||
|
||||
#define FFA_MAX_NOTIFICATIONS 64
|
||||
|
||||
@@ -1148,7 +1151,7 @@ static int ffa_partition_info_get(const char *uuid_str,
|
||||
uuid_t uuid;
|
||||
struct ffa_partition_info *pbuf;
|
||||
|
||||
if (uuid_parse(uuid_str, &uuid)) {
|
||||
if (!uuid_str || uuid_parse(uuid_str, &uuid)) {
|
||||
pr_err("invalid uuid (%s)\n", uuid_str);
|
||||
return -ENODEV;
|
||||
}
|
||||
@@ -2110,7 +2113,7 @@ static int ffa_probe(struct platform_device *pdev)
|
||||
{
|
||||
int ret;
|
||||
u32 buf_sz;
|
||||
size_t rxtx_bufsz = SZ_4K;
|
||||
size_t rxtx_min_bufsz = SZ_4K, rxtx_max_bufsz = 0, rxtx_bufsz;
|
||||
|
||||
if (IS_BUILTIN(CONFIG_ARM_FFA_TRANSPORT) &&
|
||||
is_protected_kvm_enabled() && !is_pkvm_initialized())
|
||||
@@ -2141,15 +2144,18 @@ static int ffa_probe(struct platform_device *pdev)
|
||||
ret = ffa_features(FFA_FN_NATIVE(RXTX_MAP), 0, &buf_sz, NULL);
|
||||
if (!ret) {
|
||||
if (RXTX_MAP_MIN_BUFSZ(buf_sz) == 1)
|
||||
rxtx_bufsz = SZ_64K;
|
||||
rxtx_min_bufsz = SZ_64K;
|
||||
else if (RXTX_MAP_MIN_BUFSZ(buf_sz) == 2)
|
||||
rxtx_bufsz = SZ_16K;
|
||||
rxtx_min_bufsz = SZ_16K;
|
||||
else
|
||||
rxtx_bufsz = SZ_4K;
|
||||
rxtx_min_bufsz = SZ_4K;
|
||||
|
||||
rxtx_max_bufsz = RXTX_MAP_MAX_BUFSZ(buf_sz) * SZ_4K;
|
||||
if (rxtx_max_bufsz != 0 && rxtx_max_bufsz < rxtx_min_bufsz)
|
||||
rxtx_max_bufsz = rxtx_min_bufsz;
|
||||
}
|
||||
|
||||
rxtx_bufsz = PAGE_ALIGN(rxtx_bufsz);
|
||||
drv_info->rxtx_bufsz = rxtx_bufsz;
|
||||
rxtx_bufsz = min_not_zero(PAGE_ALIGN(rxtx_min_bufsz), rxtx_max_bufsz);
|
||||
drv_info->rx_buffer = alloc_pages_exact(rxtx_bufsz, GFP_KERNEL);
|
||||
if (!drv_info->rx_buffer) {
|
||||
ret = -ENOMEM;
|
||||
@@ -2165,10 +2171,17 @@ static int ffa_probe(struct platform_device *pdev)
|
||||
ret = ffa_rxtx_map(virt_to_phys(drv_info->tx_buffer),
|
||||
virt_to_phys(drv_info->rx_buffer),
|
||||
rxtx_bufsz / FFA_PAGE_SIZE);
|
||||
if (ret == -EINVAL && !rxtx_max_bufsz && rxtx_min_bufsz < rxtx_bufsz) {
|
||||
rxtx_bufsz = rxtx_min_bufsz;
|
||||
ret = ffa_rxtx_map(virt_to_phys(drv_info->tx_buffer),
|
||||
virt_to_phys(drv_info->rx_buffer),
|
||||
rxtx_bufsz / FFA_PAGE_SIZE);
|
||||
}
|
||||
if (ret) {
|
||||
pr_err("failed to register FFA RxTx buffers\n");
|
||||
goto free_pages;
|
||||
}
|
||||
drv_info->rxtx_bufsz = rxtx_bufsz;
|
||||
|
||||
mutex_init(&drv_info->rx_lock);
|
||||
mutex_init(&drv_info->tx_lock);
|
||||
|
||||
@@ -96,7 +96,7 @@ config ARM_SCMI_POWER_CONTROL
|
||||
firmware.
|
||||
|
||||
This driver can also be built as a module. If so, the module will be
|
||||
called scmi_power_control. Note this may needed early in boot to catch
|
||||
early shutdown/reboot SCMI requests.
|
||||
called scmi_power_control. Note this may be needed early in boot to
|
||||
catch early shutdown/reboot SCMI requests.
|
||||
|
||||
endmenu
|
||||
|
||||
@@ -718,7 +718,7 @@ static int scmi_clock_rate_set(const struct scmi_protocol_handle *ph,
|
||||
static int scmi_clock_determine_rate(const struct scmi_protocol_handle *ph,
|
||||
u32 clk_id, unsigned long *rate)
|
||||
{
|
||||
u64 fmin, fmax, ftmp;
|
||||
u64 fmin, fmax, ftmp, step;
|
||||
struct scmi_clock_info *clk;
|
||||
struct scmi_clock_desc *clkd;
|
||||
struct clock_info *ci = ph->get_priv(ph);
|
||||
@@ -749,11 +749,14 @@ static int scmi_clock_determine_rate(const struct scmi_protocol_handle *ph,
|
||||
return 0;
|
||||
}
|
||||
|
||||
ftmp = *rate - fmin;
|
||||
ftmp += clkd->r.rates[RATE_STEP] - 1; /* to round up */
|
||||
ftmp = div64_ul(ftmp, clkd->r.rates[RATE_STEP]);
|
||||
step = clkd->r.rates[RATE_STEP];
|
||||
if (!step)
|
||||
return -EINVAL;
|
||||
|
||||
*rate = ftmp * clkd->r.rates[RATE_STEP] + fmin;
|
||||
ftmp = *rate - fmin;
|
||||
ftmp = DIV64_U64_ROUND_UP(ftmp, step);
|
||||
|
||||
*rate = ftmp * step + fmin;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -600,9 +600,9 @@ int scmi_notify(const struct scmi_handle *handle, u8 proto_id, u8 evt_id,
|
||||
return -EINVAL;
|
||||
}
|
||||
if (kfifo_avail(&r_evt->proto->equeue.kfifo) < sizeof(eh) + len) {
|
||||
dev_warn(handle->dev,
|
||||
"queue full, dropping proto_id:%d evt_id:%d ts:%lld\n",
|
||||
proto_id, evt_id, ktime_to_ns(ts));
|
||||
dev_warn_ratelimited(handle->dev,
|
||||
"queue full, dropping proto_id:%d evt_id:%d ts:%lld\n",
|
||||
proto_id, evt_id, ktime_to_ns(ts));
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
|
||||
@@ -3764,10 +3764,8 @@ static int tegra_sor_probe(struct platform_device *pdev)
|
||||
sor->num_settings = sor->soc->num_settings;
|
||||
|
||||
sor->pmc = devm_tegra_pmc_get(&pdev->dev);
|
||||
if (IS_ERR(sor->pmc)) {
|
||||
err = PTR_ERR(sor->pmc);
|
||||
goto put_aux;
|
||||
}
|
||||
if (IS_ERR(sor->pmc))
|
||||
return PTR_ERR(sor->pmc);
|
||||
|
||||
np = of_parse_phandle(pdev->dev.of_node, "nvidia,dpaux", 0);
|
||||
if (np) {
|
||||
|
||||
@@ -236,6 +236,12 @@ static int imx8mq_reset_set(struct reset_controller_dev *rcdev,
|
||||
|
||||
case IMX8MQ_RESET_PCIE_CTRL_APPS_EN:
|
||||
case IMX8MQ_RESET_PCIE2_CTRL_APPS_EN:
|
||||
case IMX8MQ_RESET_MIPI_CSI1_CORE_RESET:
|
||||
case IMX8MQ_RESET_MIPI_CSI1_PHY_REF_RESET:
|
||||
case IMX8MQ_RESET_MIPI_CSI1_ESC_RESET:
|
||||
case IMX8MQ_RESET_MIPI_CSI2_CORE_RESET:
|
||||
case IMX8MQ_RESET_MIPI_CSI2_PHY_REF_RESET:
|
||||
case IMX8MQ_RESET_MIPI_CSI2_ESC_RESET:
|
||||
case IMX8MQ_RESET_MIPI_DSI_PCLK_RESET_N:
|
||||
case IMX8MQ_RESET_MIPI_DSI_ESC_RESET_N:
|
||||
case IMX8MQ_RESET_MIPI_DSI_DPI_RESET_N:
|
||||
|
||||
@@ -44,7 +44,7 @@ static int sunxi_reset_init(struct device_node *np)
|
||||
data->membase = ioremap(res.start, size);
|
||||
if (!data->membase) {
|
||||
ret = -ENOMEM;
|
||||
goto err_alloc;
|
||||
goto err_mem_region;
|
||||
}
|
||||
|
||||
spin_lock_init(&data->lock);
|
||||
@@ -57,6 +57,8 @@ static int sunxi_reset_init(struct device_node *np)
|
||||
|
||||
return reset_controller_register(&data->rcdev);
|
||||
|
||||
err_mem_region:
|
||||
release_mem_region(res.start, size);
|
||||
err_alloc:
|
||||
kfree(data);
|
||||
return ret;
|
||||
|
||||
@@ -112,7 +112,7 @@ static const struct ccu_reset_data k3_apmu_resets[] = {
|
||||
[RESET_APMU_SDH0] = RESET_DATA(APMU_SDH0_CLK_RES_CTRL, 0, BIT(1)),
|
||||
[RESET_APMU_SDH1] = RESET_DATA(APMU_SDH1_CLK_RES_CTRL, 0, BIT(1)),
|
||||
[RESET_APMU_SDH2] = RESET_DATA(APMU_SDH2_CLK_RES_CTRL, 0, BIT(1)),
|
||||
[RESET_APMU_USB2_AHB] = RESET_DATA(APMU_USB_CLK_RES_CTRL, 0, BIT(1)),
|
||||
[RESET_APMU_USB2_AHB] = RESET_DATA(APMU_USB_CLK_RES_CTRL, 0, BIT(0)),
|
||||
[RESET_APMU_USB2_VCC] = RESET_DATA(APMU_USB_CLK_RES_CTRL, 0, BIT(2)),
|
||||
[RESET_APMU_USB2_PHY] = RESET_DATA(APMU_USB_CLK_RES_CTRL, 0, BIT(3)),
|
||||
[RESET_APMU_USB3_A_AHB] = RESET_DATA(APMU_USB_CLK_RES_CTRL, 0, BIT(5)),
|
||||
|
||||
@@ -116,7 +116,7 @@ bool tegra_is_silicon(void)
|
||||
|
||||
u32 tegra_read_straps(void)
|
||||
{
|
||||
WARN(!chipid, "Tegra ABP MISC not yet available\n");
|
||||
WARN(!apbmisc_base, "Tegra ABP MISC not yet available\n");
|
||||
|
||||
return strapping;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#define USB0_RESET 35
|
||||
#define USB1_RESET 36
|
||||
#define NAND_RESET 37
|
||||
/* 38 is empty */
|
||||
#define COMBOPHY_RESET 38
|
||||
#define SDMMC_RESET 39
|
||||
#define EMAC0_OCP_RESET 40
|
||||
#define EMAC1_OCP_RESET 41
|
||||
|
||||
@@ -210,7 +210,6 @@ tegra_pmc_io_pad_power_disable(struct tegra_pmc *pmc, enum tegra_io_pad id)
|
||||
bool tegra_pmc_cpu_is_powered(unsigned int cpuid);
|
||||
int tegra_pmc_cpu_power_on(unsigned int cpuid);
|
||||
int tegra_pmc_cpu_remove_clamping(unsigned int cpuid);
|
||||
bool tegra_pmc_core_domain_state_synced(void);
|
||||
|
||||
#if defined(CONFIG_SOC_TEGRA_PMC) && defined(CONFIG_PM_SLEEP)
|
||||
enum tegra_suspend_mode tegra_pmc_get_suspend_mode(void);
|
||||
@@ -230,6 +229,10 @@ static inline void tegra_pmc_enter_suspend_mode(enum tegra_suspend_mode mode)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_ARM) && defined(CONFIG_SOC_TEGRA_PMC)
|
||||
bool tegra_pmc_core_domain_state_synced(void);
|
||||
#else
|
||||
/* needed for COMPILE_TEST */
|
||||
static inline bool tegra_pmc_core_domain_state_synced(void)
|
||||
|
||||
Reference in New Issue
Block a user