* [PATCH 0/3] Dts nodes for Keystone2 hw_rng driver
From: santosh.shilimkar at oracle.com @ 2018-05-26 4:43 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1527167538-29837-1-git-send-email-vitalya@ti.com>
On 5/24/18 6:12 AM, Vitaly Andrianov wrote:
> This series adds dts nodes for Keystone2 hw_rng driver
>
> Vitaly Andrianov (3):
> ARM: dts: k2hk: add dts node for k2hk hw_rng driver
> ARM: dts: k2l: add dts node for k2l hw_rng driver
> ARM: dts: k2e: add dts node for k2e hw_rng driver
>
Looks good. Will queue this up for 4.19. Thanks !!
Regards,
Santosh
^ permalink raw reply
* qcom: add firmware file for Venus on SDM845
From: Vikash Garodia @ 2018-05-26 8:18 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <CA+5PVA67tow+prVC55XF4=CbRGXJvPi2SuCMyhRyuw5qt8T6_Q@mail.gmail.com>
Hi Josh,
On 2018-05-25 17:34, Josh Boyer wrote:
> On Fri, May 25, 2018 at 7:03 AM Vikash Garodia
> <vgarodia@codeaurora.org>
> wrote:
>
>> This pull request adds firmware files for Venus h/w codec found on the
> Qualcomm SDM845 chipset.
>
>> The following changes since commit
> 2a9b2cf50fb32e36e4fc1586c2f6f1421913b553:
>
>> Merge branch 'for-upstreaming-v1.7.2' of
> https://github.com/felix-cavium/linux-firmware (2018-05-18 08:35:22
> -0400)
>
>> are available in the git repository at:
>
>
>> https://github.com/vgarodia/linux-firmware master
>
>> for you to fetch changes up to
>> d6088b9c9d7f49d3c6c43681190889eca0abdcce:
>
>> qcom: add venus firmware files for v5.2 (2018-05-25 15:16:43 +0530)
>
>> ----------------------------------------------------------------
>> Vikash Garodia (1):
>> qcom: add venus firmware files for v5.2
>
>> WHENCE | 9 +++++++++
>> qcom/venus-5.2/venus.b00 | Bin 0 -> 212 bytes
>> qcom/venus-5.2/venus.b01 | Bin 0 -> 6600 bytes
>> qcom/venus-5.2/venus.b02 | Bin 0 -> 819552 bytes
>> qcom/venus-5.2/venus.b03 | Bin 0 -> 33536 bytes
>> qcom/venus-5.2/venus.b04 | 1 +
>> qcom/venus-5.2/venus.mbn | Bin 0 -> 865408 bytes
>> qcom/venus-5.2/venus.mdt | Bin 0 -> 6812 bytes
>> 8 files changed, 10 insertions(+)
>> create mode 100644 qcom/venus-5.2/venus.b00
>> create mode 100644 qcom/venus-5.2/venus.b01
>> create mode 100644 qcom/venus-5.2/venus.b02
>> create mode 100644 qcom/venus-5.2/venus.b03
>> create mode 100644 qcom/venus-5.2/venus.b04
>> create mode 100644 qcom/venus-5.2/venus.mbn
>> create mode 100644 qcom/venus-5.2/venus.mdt
>
> The venus.mbn file isn't mentioned in WHENCE:
>
> [jwboyer at vader linux-firmware]$ ./check_whence.py
> E: qcom/venus-5.2/venus.mbn not listed in WHENCE
> [jwboyer at vader linux-firmware]$
>
> Can you fix that up and let me know when to re-pull?
I have fixed the error and is ready to be re-pulled from the same git
repository.
I have noted the process to run check_whence.py before uploading the
firmwares.
Do i need to resend the pull request as the end commit is now changed to
7602644358157e4b89960472b6d59ffcc040ca52 ?
-Vikash
^ permalink raw reply
* [PATCH 1/6] arm64: dts: amlogic: Add missing cooling device properties for CPUs
From: Neil Armstrong @ 2018-05-26 8:37 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180525211025.c73zdcdtyuvlewng@localhost>
Hi,
On 25/05/2018 23:10, Olof Johansson wrote:
> On Fri, May 25, 2018 at 11:10:01AM +0530, Viresh Kumar wrote:
>> The cooling device properties, like "#cooling-cells" and
>> "dynamic-power-coefficient", should either be present for all the CPUs
>> of a cluster or none. If these are present only for a subset of CPUs of
>> a cluster then things will start falling apart as soon as the CPUs are
>> brought online in a different order. For example, this will happen
>> because the operating system looks for such properties in the CPU node
>> it is trying to bring up, so that it can register a cooling device.
>>
>> Add such missing properties.
>
> This seems awkward compared to just having one cooling-cells in the /cpus node
> instead.
>
> What's it used for? I don't see any properties in the device nodes on meson-gxm
> that have any cooling-foo cells in them? So why should #cooling-cells be
> needed?
There is no reason to have the cooling-cells on these other CPUs, the DVFS is
controlled on the first CPU of each cluster, here cpu0 and cpu4 and only
cpu0 and cpu4 are used as cooling-cells.
Neil
>
>
> -Olof
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
^ permalink raw reply
* [PATCH] ARM: pxa: hx4700: fix the usb client
From: Robert Jarzmik @ 2018-05-26 9:38 UTC (permalink / raw)
To: linux-arm-kernel
The usb client of the hx4700 is not working because no platform data is
declared. Fix it by adding the missing call.
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
---
arch/arm/mach-pxa/hx4700.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm/mach-pxa/hx4700.c b/arch/arm/mach-pxa/hx4700.c
index e2e7f247a645..b79b757fdd41 100644
--- a/arch/arm/mach-pxa/hx4700.c
+++ b/arch/arm/mach-pxa/hx4700.c
@@ -54,6 +54,7 @@
#include "devices.h"
#include "generic.h"
+#include "udc.h"
/* Physical address space information */
@@ -594,6 +595,8 @@ static struct platform_device gpio_vbus = {
},
};
+static struct pxa2xx_udc_mach_info hx4700_udc_info;
+
/*
* Touchscreen - TSC2046 connected to SSP2
*/
@@ -891,6 +894,7 @@ static void __init hx4700_init(void)
gpio_set_value(GPIO71_HX4700_ASIC3_nRESET, 1);
mdelay(10);
+ pxa_set_udc_info(&hx4700_udc_info);
regulator_has_full_constraints();
}
--
2.11.0
^ permalink raw reply related
* [RESEND PATCH] dmaengine: pxa: add a default requestor policy
From: Robert Jarzmik @ 2018-05-26 9:54 UTC (permalink / raw)
To: linux-arm-kernel
As what former drcmr -1 value meant, add a this as a default to each
channel, ie. that by default no requestor line is used.
This is specifically used for network drivers smc91x and smc911x, and
needed for their port to slave maps.
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
---
drivers/dma/pxa_dma.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/dma/pxa_dma.c b/drivers/dma/pxa_dma.c
index 9505334f9c6e..604df1bdadf7 100644
--- a/drivers/dma/pxa_dma.c
+++ b/drivers/dma/pxa_dma.c
@@ -762,6 +762,8 @@ static void pxad_free_chan_resources(struct dma_chan *dchan)
dma_pool_destroy(chan->desc_pool);
chan->desc_pool = NULL;
+ chan->drcmr = (u32)-1;
+ chan->prio = PXAD_PRIO_LOWEST;
}
static void pxad_free_desc(struct virt_dma_desc *vd)
@@ -1386,6 +1388,9 @@ static int pxad_init_dmadev(struct platform_device *op,
c = devm_kzalloc(&op->dev, sizeof(*c), GFP_KERNEL);
if (!c)
return -ENOMEM;
+
+ c->drcmr = (u32)-1;
+ c->prio = PXAD_PRIO_LOWEST;
c->vc.desc_free = pxad_free_desc;
vchan_init(&c->vc, &pdev->slave);
init_waitqueue_head(&c->wq_state);
--
2.11.0
^ permalink raw reply related
* Boot failures in -next on Jetson TK1
From: Mark Brown @ 2018-05-26 10:36 UTC (permalink / raw)
To: linux-arm-kernel
Currently -next is failing to boot on Jetson TK1. The problem looks to
be the Nouveau driver, during initialization it reports an address
decode error then starts printing error messages saying "nouveau
57000000.gpu: fifo: SCHED_ERROR 20 []" over and over again.
I've pasted the start of the errors below, you can see a full log and
more details at:
https://kernelci.org/boot/id/5b0882a259b514339779a881/
The warnings about Spectre are a separate issue and don't seem to affect
the boot.
[ 15.194484] nouveau 57000000.gpu: NVIDIA GK20A (0ea000a1)
[ 15.200109] udevd[109]: could not rename interface '3' from 'eth0' to 'enp1s0': Device or resource busy
[ 15.206399] nouveau 57000000.gpu: imem: using IOMMU
[ 15.315122] CPU2: Spectre v2: firmware did not set auxiliary control register IBE bit, system vulnerable
[ 15.320021] nouveau 57000000.gpu: Direct firmware load for nvidia/gk20a/fecs_inst.bin failed with error -2
[ 15.384841] nouveau 57000000.gpu: Direct firmware load for nouveau/nvea_fuc409c failed with error -2
[ 15.393972] nouveau 57000000.gpu: Direct firmware load for nouveau/fuc409c failed with error -2
[ 15.402679] nouveau 57000000.gpu: gr: failed to load fuc409c
[ 15.409434] CPU1: Spectre v2: firmware did not set auxiliary control register IBE bit, system vulnerable
[ 15.419398] CPU1: Spectre v2: firmware did not set auxiliary control register IBE bit, system vulnerable
[ 15.482568] tegra-mc 70019000.memory-controller: gpusrd: read @0x00041200: EMEM address decode error (EMEM decode error)
[ 15.491232] [TTM] Zone kernel: Available graphics memory: 375202 kiB
[ 15.502768] [TTM] Zone highmem: Available graphics memory: 1030050 kiB
[ 15.509290] [TTM] Initializing pool allocator
[ 15.513658] nouveau 57000000.gpu: DRM: VRAM: 0 MiB
[ 15.518451] nouveau 57000000.gpu: DRM: GART: 1048576 MiB
[ 15.526546] CPU1: Spectre v2: firmware did not set auxiliary control register IBE bit, system vulnerable
[ 15.527290] tegra-mc 70019000.memory-controller: gpusrd: read @0x00072000: EMEM address decode error (EMEM decode error)
[ 15.537050] CPU1: Spectre v2: firmware did not set auxiliary control register IBE bit, system vulnerable
[ 15.546928] nouveau 57000000.gpu: fifo: SCHED_ERROR 20 []
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180526/689741b6/attachment.sig>
^ permalink raw reply
* [PATCH] media: mtk-vpu: fix spelling mistake: "Prosessor" -> "Processor"
From: Colin King @ 2018-05-26 13:45 UTC (permalink / raw)
To: linux-arm-kernel
From: Colin Ian King <colin.king@canonical.com>
Trivial fix to spelling mistake in module description text.
Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
drivers/media/platform/mtk-vpu/mtk_vpu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/media/platform/mtk-vpu/mtk_vpu.c b/drivers/media/platform/mtk-vpu/mtk_vpu.c
index 1ff6a93262b7..f8d35e3ac1dc 100644
--- a/drivers/media/platform/mtk-vpu/mtk_vpu.c
+++ b/drivers/media/platform/mtk-vpu/mtk_vpu.c
@@ -960,4 +960,4 @@ static struct platform_driver mtk_vpu_driver = {
module_platform_driver(mtk_vpu_driver);
MODULE_LICENSE("GPL v2");
-MODULE_DESCRIPTION("Mediatek Video Prosessor Unit driver");
+MODULE_DESCRIPTION("Mediatek Video Processor Unit driver");
--
2.17.0
^ permalink raw reply related
* [PATCH 1/2] arm64: arch_timer: Workaround for Allwinner A64 timer instability
From: André Przywara @ 2018-05-26 15:15 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180511022751.9096-2-samuel@sholland.org>
On 05/11/2018 03:27 AM, Samuel Holland wrote:
> The Allwinner A64 SoC is known [1] to have an unstable architectural
> timer, which manifests itself most obviously in the time jumping forward
> a multiple of 95 years [2][3]. This coincides with 2^56 cycles at a
> timer frequency of 24 MHz, implying that the time went slightly backward
> (and this was interpreted by the kernel as it jumping forward and
> wrapping around past the epoch).
>
> Further investigation revealed instability in the low bits of CNTVCT at
> the point a high bit rolls over. This leads to power-of-two cycle
> forward and backward jumps. (Testing shows that forward jumps are about
> twice as likely as backward jumps.)
>
> Without trapping reads to CNTVCT, a userspace program is able to read it
> in a loop faster than it changes. A test program running on all 4 CPU
> cores that reported jumps larger than 100 ms was run for 13.6 hours and
> reported the following:
>
> Count | Event
> -------+---------------------------
> 9940 | jumped backward 699ms
> 268 | jumped backward 1398ms
> 1 | jumped backward 2097ms
> 16020 | jumped forward 175ms
> 6443 | jumped forward 699ms
> 2976 | jumped forward 1398ms
> 9 | jumped forward 356516ms
> 9 | jumped forward 357215ms
> 4 | jumped forward 714430ms
> 1 | jumped forward 3578440ms
>
> This works out to a jump larger than 100 ms about every 5.5 seconds on
> each CPU core.
>
> The largest jump (almost an hour!) was the following sequence of reads:
> 0x0000007fffffffff ? 0x00000093feffffff ? 0x0000008000000000
>
> Note that the middle bits don't necessarily all read as all zeroes or
> all ones during the anomalous behavior; however the low 11 bits checked
> by the function in this patch have never been observed with any other
> value.
>
> Also note that smaller jumps are much more common, with the smallest
> backward jumps of 2048 cycles observed over 400 times per second on each
> core. (Of course, this is partially due to lower bits rolling over more
> frequently.) Any one of these could have caused the 95 year time skip.
>
> Similar anomalies were observed while reading CNTPCT (after patching the
> kernel to allow reads from userspace). However, the jumps are much less
> frequent, and only small jumps were observed. The same program as before
> (except now reading CNTPCT) observed after 72 hours:
>
> Count | Event
> -------+---------------------------
> 17 | jumped backward 699ms
> 52 | jumped forward 175ms
> 2831 | jumped forward 699ms
> 5 | jumped forward 1398ms
>
> ========================================================================
>
> Because the CPU can read the CNTPCT/CNTVCT registers faster than they
> change, performing two reads of the register and comparing the high bits
> (like other workarounds) is not a workable solution. And because the
> timer can jump both forward and backward, no pair of reads can
> distinguish a good value from a bad one. The only way to guarantee a
> good value from consecutive reads would be to read _three_ times, and
> take the middle value iff the three values are 1) individually unique
> and 2) increasing. This takes at minimum 3 cycles (125 ns), or more if
> an anomaly is detected.
>
> However, since there is a distinct pattern to the bad values, we can
> optimize the common case (2046/2048 of the time) to a single read by
> simply ignoring values that match the pattern. This still takes no more
> than 3 cycles in the worst case, and requires much less code.
Clever solution, and indeed much less costly than other workarounds.
FWIW, I tested this on a Pine64 and can confirm that it works.
I put a test program here:
https://github.com/apritzel/pine64/blob/master/tools/test_timer.c
This only checks for consecutive reads going backwards, but within a
split second yells on an unpatched kernel:
https://gist.github.com/apritzel/fc78ca6edb17be2024d5adfd35edb520
Applying the patch and adding the DT property fixed that for me.
I second Marc's request for an upper bound on the loop. Question is just
what we do when we reach the loop count limit?
But regardless, given that this fixes this nasty issue:
Tested-by: Andre Przywara <andre.przywara@arm.com>
Cheers,
Andre.
^ permalink raw reply
* [GIT PULL] Allwinner core changes for 4.18
From: Chen-Yu Tsai @ 2018-05-26 16:22 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180525210218.orjdivwnkm6j4d4q@localhost>
On Fri, May 25, 2018 at 2:02 PM, Olof Johansson <olof@lixom.net> wrote:
> On Mon, May 21, 2018 at 01:41:56PM +0200, Maxime Ripard wrote:
>> Hi,
>>
>> Here is our mach-sunxi changes for the next merge window, thanks!
>> Maxime
>>
>> The following changes since commit 60cc43fc888428bb2f18f08997432d426a243338:
>>
>> Linux 4.17-rc1 (2018-04-15 18:24:20 -0700)
>>
>> are available in the Git repository at:
>>
>> https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git tags/sunxi-core-for-4.18
>>
>> for you to fetch changes up to 6961275e72a8c15cc4ebf108a81eee758480a6a2:
>>
>> ARM: sun8i: smp: Add support for A83T (2018-05-08 15:00:20 +0200)
>>
>> ----------------------------------------------------------------
>> Allwinner core changes for 4.18
>>
>> The A83t, unlike the other Allwinner SoCs, cannot use PSCI because of a
>> silicon bug. As such, we needed to have some smp_ops in order to bringup
>> the various cores (and clusters) found on this SoC.
>
> Hrm. that's unfortunate. Is there any public documentation of what the bug is?
The security extensions in the A80 and A83T is not entirely enabled.
The security bit is not forwarded on to the bus, so all accesses from
non-secure become secure. This is not documented, but was the result
of some tests I did.
See https://lists.denx.de/pipermail/u-boot/2017-June/294672.html
for a summary (in the quotes) of what we think is the issue.
Marc's suggestion is that if virtualization doesn't work on it, then
there's no point in running it non-secure. [1]
ChenYu
[1] https://lists.denx.de/pipermail/u-boot/2017-June/294697.html
^ permalink raw reply
* [PATCH] ARM: Fix i2c-gpio GPIO descriptor tables
From: Linus Walleij @ 2018-05-26 16:37 UTC (permalink / raw)
To: linux-arm-kernel
I used bad names in my clumsiness when rewriting many board
files to use GPIO descriptors instead of platform data. A few
had the platform_device ID set to -1 which would indeed give
the device name "i2c-gpio".
But several had it set to >=0 which gives the names
"i2c-gpio.0", "i2c-gpio.1" ...
Fix the offending instances in the ARM tree. Sorry for the
mess.
Fixes: b2e63555592f ("i2c: gpio: Convert to use descriptors")
Cc: Wolfram Sang <wsa@the-dreams.de>
Cc: Simon Guinot <simon.guinot@sequanux.org>
Reported-by: Simon Guinot <simon.guinot@sequanux.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
ARM SoC folks: please apply this directly for fixes if
it check out fine.
(The fact that it took so long to discover tells us something
about how used these board files are.)
---
arch/arm/mach-ep93xx/core.c | 2 +-
arch/arm/mach-ixp4xx/avila-setup.c | 2 +-
arch/arm/mach-ixp4xx/dsmg600-setup.c | 2 +-
arch/arm/mach-ixp4xx/fsg-setup.c | 2 +-
arch/arm/mach-ixp4xx/ixdp425-setup.c | 2 +-
arch/arm/mach-ixp4xx/nas100d-setup.c | 2 +-
arch/arm/mach-ixp4xx/nslu2-setup.c | 2 +-
arch/arm/mach-pxa/palmz72.c | 2 +-
arch/arm/mach-pxa/viper.c | 4 ++--
arch/arm/mach-sa1100/simpad.c | 2 +-
10 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c
index e70feec6fad5..0581ffbedddd 100644
--- a/arch/arm/mach-ep93xx/core.c
+++ b/arch/arm/mach-ep93xx/core.c
@@ -323,7 +323,7 @@ void __init ep93xx_register_eth(struct ep93xx_eth_data *data, int copy_addr)
/* All EP93xx devices use the same two GPIO pins for I2C bit-banging */
static struct gpiod_lookup_table ep93xx_i2c_gpiod_table = {
- .dev_id = "i2c-gpio",
+ .dev_id = "i2c-gpio.0",
.table = {
/* Use local offsets on gpiochip/port "G" */
GPIO_LOOKUP_IDX("G", 1, NULL, 0,
diff --git a/arch/arm/mach-ixp4xx/avila-setup.c b/arch/arm/mach-ixp4xx/avila-setup.c
index 77def6169f50..44cbbce6bda6 100644
--- a/arch/arm/mach-ixp4xx/avila-setup.c
+++ b/arch/arm/mach-ixp4xx/avila-setup.c
@@ -51,7 +51,7 @@ static struct platform_device avila_flash = {
};
static struct gpiod_lookup_table avila_i2c_gpiod_table = {
- .dev_id = "i2c-gpio",
+ .dev_id = "i2c-gpio.0",
.table = {
GPIO_LOOKUP_IDX("IXP4XX_GPIO_CHIP", AVILA_SDA_PIN,
NULL, 0, GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
diff --git a/arch/arm/mach-ixp4xx/dsmg600-setup.c b/arch/arm/mach-ixp4xx/dsmg600-setup.c
index 0f5c99941a7d..397190f3a8da 100644
--- a/arch/arm/mach-ixp4xx/dsmg600-setup.c
+++ b/arch/arm/mach-ixp4xx/dsmg600-setup.c
@@ -70,7 +70,7 @@ static struct platform_device dsmg600_flash = {
};
static struct gpiod_lookup_table dsmg600_i2c_gpiod_table = {
- .dev_id = "i2c-gpio",
+ .dev_id = "i2c-gpio.0",
.table = {
GPIO_LOOKUP_IDX("IXP4XX_GPIO_CHIP", DSMG600_SDA_PIN,
NULL, 0, GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
diff --git a/arch/arm/mach-ixp4xx/fsg-setup.c b/arch/arm/mach-ixp4xx/fsg-setup.c
index 033f79b35d51..f0a152e365b1 100644
--- a/arch/arm/mach-ixp4xx/fsg-setup.c
+++ b/arch/arm/mach-ixp4xx/fsg-setup.c
@@ -56,7 +56,7 @@ static struct platform_device fsg_flash = {
};
static struct gpiod_lookup_table fsg_i2c_gpiod_table = {
- .dev_id = "i2c-gpio",
+ .dev_id = "i2c-gpio.0",
.table = {
GPIO_LOOKUP_IDX("IXP4XX_GPIO_CHIP", FSG_SDA_PIN,
NULL, 0, GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
diff --git a/arch/arm/mach-ixp4xx/ixdp425-setup.c b/arch/arm/mach-ixp4xx/ixdp425-setup.c
index b168e2fbdbeb..3ec829d52cdd 100644
--- a/arch/arm/mach-ixp4xx/ixdp425-setup.c
+++ b/arch/arm/mach-ixp4xx/ixdp425-setup.c
@@ -124,7 +124,7 @@ static struct platform_device ixdp425_flash_nand = {
#endif /* CONFIG_MTD_NAND_PLATFORM */
static struct gpiod_lookup_table ixdp425_i2c_gpiod_table = {
- .dev_id = "i2c-gpio",
+ .dev_id = "i2c-gpio.0",
.table = {
GPIO_LOOKUP_IDX("IXP4XX_GPIO_CHIP", IXDP425_SDA_PIN,
NULL, 0, GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
diff --git a/arch/arm/mach-ixp4xx/nas100d-setup.c b/arch/arm/mach-ixp4xx/nas100d-setup.c
index 76dfff03cb71..4138d6aa4c52 100644
--- a/arch/arm/mach-ixp4xx/nas100d-setup.c
+++ b/arch/arm/mach-ixp4xx/nas100d-setup.c
@@ -102,7 +102,7 @@ static struct platform_device nas100d_leds = {
};
static struct gpiod_lookup_table nas100d_i2c_gpiod_table = {
- .dev_id = "i2c-gpio",
+ .dev_id = "i2c-gpio.0",
.table = {
GPIO_LOOKUP_IDX("IXP4XX_GPIO_CHIP", NAS100D_SDA_PIN,
NULL, 0, GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
diff --git a/arch/arm/mach-ixp4xx/nslu2-setup.c b/arch/arm/mach-ixp4xx/nslu2-setup.c
index 91da63a7d7b5..341b263482ef 100644
--- a/arch/arm/mach-ixp4xx/nslu2-setup.c
+++ b/arch/arm/mach-ixp4xx/nslu2-setup.c
@@ -70,7 +70,7 @@ static struct platform_device nslu2_flash = {
};
static struct gpiod_lookup_table nslu2_i2c_gpiod_table = {
- .dev_id = "i2c-gpio",
+ .dev_id = "i2c-gpio.0",
.table = {
GPIO_LOOKUP_IDX("IXP4XX_GPIO_CHIP", NSLU2_SDA_PIN,
NULL, 0, GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
diff --git a/arch/arm/mach-pxa/palmz72.c b/arch/arm/mach-pxa/palmz72.c
index 5877e547cecd..0adb1bd6208e 100644
--- a/arch/arm/mach-pxa/palmz72.c
+++ b/arch/arm/mach-pxa/palmz72.c
@@ -322,7 +322,7 @@ static struct soc_camera_link palmz72_iclink = {
};
static struct gpiod_lookup_table palmz72_i2c_gpiod_table = {
- .dev_id = "i2c-gpio",
+ .dev_id = "i2c-gpio.0",
.table = {
GPIO_LOOKUP_IDX("gpio-pxa", 118, NULL, 0,
GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
diff --git a/arch/arm/mach-pxa/viper.c b/arch/arm/mach-pxa/viper.c
index 90d0f277de55..207dcc2e94e7 100644
--- a/arch/arm/mach-pxa/viper.c
+++ b/arch/arm/mach-pxa/viper.c
@@ -460,7 +460,7 @@ static struct platform_device smc91x_device = {
/* i2c */
static struct gpiod_lookup_table viper_i2c_gpiod_table = {
- .dev_id = "i2c-gpio",
+ .dev_id = "i2c-gpio.1",
.table = {
GPIO_LOOKUP_IDX("gpio-pxa", VIPER_RTC_I2C_SDA_GPIO,
NULL, 0, GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
@@ -789,7 +789,7 @@ static int __init viper_tpm_setup(char *str)
__setup("tpm=", viper_tpm_setup);
struct gpiod_lookup_table viper_tpm_i2c_gpiod_table = {
- .dev_id = "i2c-gpio",
+ .dev_id = "i2c-gpio.2",
.table = {
GPIO_LOOKUP_IDX("gpio-pxa", VIPER_TPM_I2C_SDA_GPIO,
NULL, 0, GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
diff --git a/arch/arm/mach-sa1100/simpad.c b/arch/arm/mach-sa1100/simpad.c
index ace010479eb6..f45aed2519ba 100644
--- a/arch/arm/mach-sa1100/simpad.c
+++ b/arch/arm/mach-sa1100/simpad.c
@@ -327,7 +327,7 @@ static struct platform_device simpad_gpio_leds = {
* i2c
*/
static struct gpiod_lookup_table simpad_i2c_gpiod_table = {
- .dev_id = "i2c-gpio",
+ .dev_id = "i2c-gpio.0",
.table = {
GPIO_LOOKUP_IDX("gpio", 21, NULL, 0,
GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
--
2.17.0
^ permalink raw reply related
* i2c-gpio and boards conversions to GPIO descriptors
From: Linus Walleij @ 2018-05-26 16:38 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180525154144.GC19100@kw.sim.vm.gnt>
On Fri, May 25, 2018 at 5:41 PM, Simon Guinot <simon.guinot@sequanux.org> wrote:
> Hi Linus,
>
> I think your patch b2e63555592f "i2c: gpio: Convert to use descriptors"
> may have broken i2c-gpio support for some boards using old fashion
> platform_device declarations.
>
> Indeed when an "i2c-gpio" platform_device is registered with a fixed id
> e.g. 0, then I think the device name becomes "i2c-gpio.0". And then this
> won't match a lookup table registered with an "i2c-gpio" dev_id.
Yeah what a mess, I'm sending patches to fix it up, the ARM
patch already sent, I will send a separate one for the MIPS
machines.
Sorry for the mess! :(
Yours,
Linus Walleij
^ permalink raw reply
* [PATCH] mtd: nand: raw: atmel: add module param to avoid using dma
From: Peter Rosin @ 2018-05-26 17:40 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <a25ca617-d3da-d401-1ba9-8e5887f8a8e5@microchip.com>
On 2018-05-25 16:51, Tudor Ambarus wrote:
> Hi, Peter,
>
> On 04/11/2018 06:34 PM, Nicolas Ferre wrote:
>> I'll try to move forward with your detailed explanation and with my
>> contacts within the "product" team internally.
>
> We have talked with the hardware team, looks like there is an error in
> the description of the Master to Slave Access matrix. CPU accesses DDR2
> port0 through AXI matrix and not AHB. There is no conflict between CPU
> and LCDC DMA when accessing DDR2 ports. This explains why using CPU
> helps.
>
> The slave numbers from "Table 14-3 Master to Slave Access" are wrong.
> The 7th row should be removed and all the other rows from below it,
> shifted up with one level (DDR2 Port 1 is Slave no 7, DDR2 port 2 is
> Slave no 8, ... , APB1 is slave no 11).
Yes, the fact that row 7 (the 8th row, since there is a row 0, but I get
what you mean) should be removed was pretty much what I had guessed. But
what about the other strange things I found? To reiterate, this is my
PRxSy register content (zeroes shown as -):
PRxS0 33--3--3--3333--
PRxS1 33--3--3--3333--
PRxS2 33--------------
PRxS3 -3--------333---
PRxS4 33--------------
PRxS5 3---------------
PRxS6 33--33-33333333-
PRxS7 --3-3--3--------
PRxS8 -3---3--3--3----
PRxS9 --3-3--3-33-333-
PRxS10 3--3------------
PRxS11 3-----3---------
PRxS12 ----------------
PRxS13 ----------------
PRxS14 ----------------
PRxS15 ----------------
So, PRxS7 matches row 8 (DDR2 port 1) in the datasheet.
And PRxS8 matches row 9 (DDR2 port 2) in the datasheet.
But PRxS9 is not matching row 10 (DDR2 port 3)!
And PRxS10-11 match rows 11-12 (APB 0-1) in the datasheet.
But also look at PRxS3 (Internal ROM), there's a missing 3 in the
first slot (A5)! Maybe the priority of that one can't be changed
for some fundamental reason? But there is no hint to that effect
in the datasheet AFAICT...
> We think the best way is to keep LCD on DDR Ports 2 and 3 (8th and 9th
> slaves), to have maximum bandwidth and to use DMA on DDR port 1 for NAND
> (7th slave).
I think I tried to arrange for that last time around. Not sure though,
so I will try again next week...
> Also, some information about your configuration is useful. Can you
> please tell us what NAND DMA configuration did you use? Are you using
> NAND storage for the videos that you are playing on the LCD screen?
Not sure what level of detail you are after?
We use W949D2CBJX5E LPDDR1 memories from Winbond. Years ago, I wrote some
LPDDR1 patches for at91bootstrap to driver/ddramc.c (which predate the
current upstream support) and to board/sama5d3xek/sama5d3xek.c (which doesn't
to this day support LPDDR1 upstream, but I guess it shouldn't and that we
should have a board of our own, so that part isn't really clean and also the
reason I never upstreamed it). Anyway, some other trivial glue was also
needed, but the meat are in those files. I just had a brief look at the
LPDDR1 support in the upstream ddramc.c file and our code is very similar.
But I did notice some differences and I will look into if that difference
is something that matters. I can show provide patches if you think they
are relevant?
We use this in the sam-ba .qml file when we flash the devices with sam-ba and
the nandflash applet (don't know if it's relevant, but it shows that we have
a 16-bit bus):
device: SAMA5D3 {
name: "sama5d3-linea"
aliases: []
description: "SAMA5D3 Linea"
config {
nandflash {
ioset: 1
busWidth: 16
header: 0xc0902405
}
}
}
*time passes*
Oh dear ... you said NAND *DMA* configuration. Nothing special that I know
of. So, the default? Anything specific I should check?
Further, we are not playing any video. The artifacts are visible on a
static screen on an otherwise "idle" system (i.e. just showing whatever
on the screen and accessing the DRAM with DMA is enough to trigger the
visual glitches).
Cheers,
Peter
^ permalink raw reply
* [PATCH 3/6] arm64: dts: hisilicon: Add missing cooling device properties for CPUs
From: Wei Xu @ 2018-05-26 18:00 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <0754957a2c3842cf4e36fa27231d327fd8d6d499.1527225682.git.viresh.kumar@linaro.org>
Hi Viresh,
On 2018/5/25 6:40, Viresh Kumar wrote:
> The cooling device properties, like "#cooling-cells" and
> "dynamic-power-coefficient", should either be present for all the CPUs
> of a cluster or none. If these are present only for a subset of CPUs of
> a cluster then things will start falling apart as soon as the CPUs are
> brought online in a different order. For example, this will happen
> because the operating system looks for such properties in the CPU node
> it is trying to bring up, so that it can register a cooling device.
>
> Add such missing properties.
>
> Do minor rearrangement as well to keep ordering consistent.
>
> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Thanks!
Applied to the hisilicon fix tree.
Best Regards,
Wei
> ---
> arch/arm64/boot/dts/hisilicon/hi6220.dtsi | 16 +++++++++++++++-
> 1 file changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
> index 586b281cd531..247024df714f 100644
> --- a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
> +++ b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
> @@ -88,8 +88,8 @@
> next-level-cache = <&CLUSTER0_L2>;
> clocks = <&stub_clock 0>;
> operating-points-v2 = <&cpu_opp_table>;
> - #cooling-cells = <2>; /* min followed by max */
> cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
> + #cooling-cells = <2>; /* min followed by max */
> dynamic-power-coefficient = <311>;
> };
>
> @@ -101,6 +101,8 @@
> next-level-cache = <&CLUSTER0_L2>;
> operating-points-v2 = <&cpu_opp_table>;
> cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
> + #cooling-cells = <2>; /* min followed by max */
> + dynamic-power-coefficient = <311>;
> };
>
> cpu2: cpu at 2 {
> @@ -111,6 +113,8 @@
> next-level-cache = <&CLUSTER0_L2>;
> operating-points-v2 = <&cpu_opp_table>;
> cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
> + #cooling-cells = <2>; /* min followed by max */
> + dynamic-power-coefficient = <311>;
> };
>
> cpu3: cpu at 3 {
> @@ -121,6 +125,8 @@
> next-level-cache = <&CLUSTER0_L2>;
> operating-points-v2 = <&cpu_opp_table>;
> cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
> + #cooling-cells = <2>; /* min followed by max */
> + dynamic-power-coefficient = <311>;
> };
>
> cpu4: cpu at 100 {
> @@ -131,6 +137,8 @@
> next-level-cache = <&CLUSTER1_L2>;
> operating-points-v2 = <&cpu_opp_table>;
> cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
> + #cooling-cells = <2>; /* min followed by max */
> + dynamic-power-coefficient = <311>;
> };
>
> cpu5: cpu at 101 {
> @@ -141,6 +149,8 @@
> next-level-cache = <&CLUSTER1_L2>;
> operating-points-v2 = <&cpu_opp_table>;
> cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
> + #cooling-cells = <2>; /* min followed by max */
> + dynamic-power-coefficient = <311>;
> };
>
> cpu6: cpu at 102 {
> @@ -151,6 +161,8 @@
> next-level-cache = <&CLUSTER1_L2>;
> operating-points-v2 = <&cpu_opp_table>;
> cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
> + #cooling-cells = <2>; /* min followed by max */
> + dynamic-power-coefficient = <311>;
> };
>
> cpu7: cpu at 103 {
> @@ -161,6 +173,8 @@
> next-level-cache = <&CLUSTER1_L2>;
> operating-points-v2 = <&cpu_opp_table>;
> cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
> + #cooling-cells = <2>; /* min followed by max */
> + dynamic-power-coefficient = <311>;
> };
>
> CLUSTER0_L2: l2-cache0 {
>
^ permalink raw reply
* [GIT PULL] arm64: hisilicon fixes for 4.17
From: Wei Xu @ 2018-05-26 18:08 UTC (permalink / raw)
To: linux-arm-kernel
Hi Olof, Hi Arnd,
Please help to pull the following fixes.
Sorry for the late fix pull since we got the patches at last week.
And if it is too late, I will rebase them after 4.18-rc1 released.
Thanks!
Best Regards,
Wei
---
The following changes since commit 60cc43fc888428bb2f18f08997432d426a243338:
Linux 4.17-rc1 (2018-04-15 18:24:20 -0700)
are available in the git repository at:
git://github.com/hisilicon/linux-hisi.git tags/hisi-fixes-for-4.17
for you to fetch changes up to 7734370471922ad8b1d9077c876bb0774059f807:
arm64: dts: hisilicon: Add missing cooling device properties for CPUs (2018-05-26 18:15:27 +0100)
----------------------------------------------------------------
ARM64: hisi fixes for 4.17
- Remove eMMC max-frequency property to fix eMMC corruption on hikey board
- Add missing cooling related properties to avoid falling apart when the
CPUs are brought oneline in a different order on hi6220 SoC
----------------------------------------------------------------
John Stultz (1):
arm64: dts: hikey: Fix eMMC corruption regression
Viresh Kumar (1):
arm64: dts: hisilicon: Add missing cooling device properties for CPUs
arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 1 -
arch/arm64/boot/dts/hisilicon/hi6220.dtsi | 16 +++++++++++++++-
2 files changed, 15 insertions(+), 2 deletions(-)
^ permalink raw reply
* [GIT PULL] Allwinner core changes for 4.18
From: Olof Johansson @ 2018-05-26 18:21 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <CAGb2v64Febv7ZLZbcTqR6+say38xu25gj0n+dbY-8KAyygDpJw@mail.gmail.com>
On Sat, May 26, 2018 at 6:22 PM, Chen-Yu Tsai <wens@csie.org> wrote:
> On Fri, May 25, 2018 at 2:02 PM, Olof Johansson <olof@lixom.net> wrote:
>> On Mon, May 21, 2018 at 01:41:56PM +0200, Maxime Ripard wrote:
>>> Hi,
>>>
>>> Here is our mach-sunxi changes for the next merge window, thanks!
>>> Maxime
>>>
>>> The following changes since commit 60cc43fc888428bb2f18f08997432d426a243338:
>>>
>>> Linux 4.17-rc1 (2018-04-15 18:24:20 -0700)
>>>
>>> are available in the Git repository at:
>>>
>>> https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git tags/sunxi-core-for-4.18
>>>
>>> for you to fetch changes up to 6961275e72a8c15cc4ebf108a81eee758480a6a2:
>>>
>>> ARM: sun8i: smp: Add support for A83T (2018-05-08 15:00:20 +0200)
>>>
>>> ----------------------------------------------------------------
>>> Allwinner core changes for 4.18
>>>
>>> The A83t, unlike the other Allwinner SoCs, cannot use PSCI because of a
>>> silicon bug. As such, we needed to have some smp_ops in order to bringup
>>> the various cores (and clusters) found on this SoC.
>>
>> Hrm. that's unfortunate. Is there any public documentation of what the bug is?
>
> The security extensions in the A80 and A83T is not entirely enabled.
> The security bit is not forwarded on to the bus, so all accesses from
> non-secure become secure. This is not documented, but was the result
> of some tests I did.
>
> See https://lists.denx.de/pipermail/u-boot/2017-June/294672.html
> for a summary (in the quotes) of what we think is the issue.
>
> Marc's suggestion is that if virtualization doesn't work on it, then
> there's no point in running it non-secure. [1]
So it sounds like you can still use PSCI even if there's nothing that
stops the kernel from also doing the same operations. It doesn't buy
you any security benefits, but you can use the same standard
interfaces as everybody else does. I think there's still value in
that. Or am I missing some aspect of the errata implications?
-Olof
^ permalink raw reply
* [PATCH 3/6] arm64: dts: hisilicon: Add missing cooling device properties for CPUs
From: Wei Xu @ 2018-05-26 18:21 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <5B09A0B4.2080400@hisilicon.com>
Hi Viresh,
On 2018/5/26 19:00, Wei Xu wrote:
> Hi Viresh,
>
> On 2018/5/25 6:40, Viresh Kumar wrote:
>> The cooling device properties, like "#cooling-cells" and
>> "dynamic-power-coefficient", should either be present for all the CPUs
>> of a cluster or none. If these are present only for a subset of CPUs of
>> a cluster then things will start falling apart as soon as the CPUs are
>> brought online in a different order. For example, this will happen
>> because the operating system looks for such properties in the CPU node
>> it is trying to bring up, so that it can register a cooling device.
>>
>> Add such missing properties.
>>
>> Do minor rearrangement as well to keep ordering consistent.
>>
>> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
>
> Thanks!
> Applied to the hisilicon fix tree.
Sorry for the noise!
It seems this patch is still under discussion.
I will drop it firstly.
Best Regards,
Wei
>
> Best Regards,
> Wei
>
>> ---
>> arch/arm64/boot/dts/hisilicon/hi6220.dtsi | 16 +++++++++++++++-
>> 1 file changed, 15 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
>> index 586b281cd531..247024df714f 100644
>> --- a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
>> +++ b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
>> @@ -88,8 +88,8 @@
>> next-level-cache = <&CLUSTER0_L2>;
>> clocks = <&stub_clock 0>;
>> operating-points-v2 = <&cpu_opp_table>;
>> - #cooling-cells = <2>; /* min followed by max */
>> cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
>> + #cooling-cells = <2>; /* min followed by max */
>> dynamic-power-coefficient = <311>;
>> };
>>
>> @@ -101,6 +101,8 @@
>> next-level-cache = <&CLUSTER0_L2>;
>> operating-points-v2 = <&cpu_opp_table>;
>> cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
>> + #cooling-cells = <2>; /* min followed by max */
>> + dynamic-power-coefficient = <311>;
>> };
>>
>> cpu2: cpu at 2 {
>> @@ -111,6 +113,8 @@
>> next-level-cache = <&CLUSTER0_L2>;
>> operating-points-v2 = <&cpu_opp_table>;
>> cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
>> + #cooling-cells = <2>; /* min followed by max */
>> + dynamic-power-coefficient = <311>;
>> };
>>
>> cpu3: cpu at 3 {
>> @@ -121,6 +125,8 @@
>> next-level-cache = <&CLUSTER0_L2>;
>> operating-points-v2 = <&cpu_opp_table>;
>> cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
>> + #cooling-cells = <2>; /* min followed by max */
>> + dynamic-power-coefficient = <311>;
>> };
>>
>> cpu4: cpu at 100 {
>> @@ -131,6 +137,8 @@
>> next-level-cache = <&CLUSTER1_L2>;
>> operating-points-v2 = <&cpu_opp_table>;
>> cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
>> + #cooling-cells = <2>; /* min followed by max */
>> + dynamic-power-coefficient = <311>;
>> };
>>
>> cpu5: cpu at 101 {
>> @@ -141,6 +149,8 @@
>> next-level-cache = <&CLUSTER1_L2>;
>> operating-points-v2 = <&cpu_opp_table>;
>> cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
>> + #cooling-cells = <2>; /* min followed by max */
>> + dynamic-power-coefficient = <311>;
>> };
>>
>> cpu6: cpu at 102 {
>> @@ -151,6 +161,8 @@
>> next-level-cache = <&CLUSTER1_L2>;
>> operating-points-v2 = <&cpu_opp_table>;
>> cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
>> + #cooling-cells = <2>; /* min followed by max */
>> + dynamic-power-coefficient = <311>;
>> };
>>
>> cpu7: cpu at 103 {
>> @@ -161,6 +173,8 @@
>> next-level-cache = <&CLUSTER1_L2>;
>> operating-points-v2 = <&cpu_opp_table>;
>> cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
>> + #cooling-cells = <2>; /* min followed by max */
>> + dynamic-power-coefficient = <311>;
>> };
>>
>> CLUSTER0_L2: l2-cache0 {
>>
^ permalink raw reply
* [GIT PULL] arm64: hisilicon fixes for 4.17
From: Wei Xu @ 2018-05-26 18:23 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <5B09A2AB.2040002@hisilicon.com>
Hi Olof, Hi Arnd,
Please ignore this pull because of the cooling patch.
I will send another one without that.
Sorry for the noise!
Best Regards,
Wei
On 2018/5/26 19:08, Wei Xu wrote:
> Hi Olof, Hi Arnd,
>
> Please help to pull the following fixes.
> Sorry for the late fix pull since we got the patches at last week.
> And if it is too late, I will rebase them after 4.18-rc1 released.
> Thanks!
>
> Best Regards,
> Wei
>
> ---
>
> The following changes since commit 60cc43fc888428bb2f18f08997432d426a243338:
>
> Linux 4.17-rc1 (2018-04-15 18:24:20 -0700)
>
> are available in the git repository at:
>
> git://github.com/hisilicon/linux-hisi.git tags/hisi-fixes-for-4.17
>
> for you to fetch changes up to 7734370471922ad8b1d9077c876bb0774059f807:
>
> arm64: dts: hisilicon: Add missing cooling device properties for CPUs (2018-05-26 18:15:27 +0100)
>
> ----------------------------------------------------------------
> ARM64: hisi fixes for 4.17
>
> - Remove eMMC max-frequency property to fix eMMC corruption on hikey board
> - Add missing cooling related properties to avoid falling apart when the
> CPUs are brought oneline in a different order on hi6220 SoC
>
> ----------------------------------------------------------------
> John Stultz (1):
> arm64: dts: hikey: Fix eMMC corruption regression
>
> Viresh Kumar (1):
> arm64: dts: hisilicon: Add missing cooling device properties for CPUs
>
> arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 1 -
> arch/arm64/boot/dts/hisilicon/hi6220.dtsi | 16 +++++++++++++++-
> 2 files changed, 15 insertions(+), 2 deletions(-)
>
>
^ permalink raw reply
* ARM: dts: imx6: enable OTG on wandboard and riotboard
From: Alexander Kurz @ 2018-05-26 18:30 UTC (permalink / raw)
To: linux-arm-kernel
Both boards wandboard and riotboard feature an USB OTG connector.
Change the DT regulator nodes to match the convention, fix the
GPIO regulator polatity for the riotboard and add enable OTG
including the regulator infrastructure on the riotboard.
^ permalink raw reply
* [PATCH 1/3] ARM: dts: imx6 wandboard and riotboard: remove regulators bus node
From: Alexander Kurz @ 2018-05-26 18:30 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180526183053.14029-1-akurz@blala.de>
To match the convention, move regulator-fixed nodes directly into
the root node.
Signed-off-by: Alexander Kurz <akurz@blala.de>
---
arch/arm/boot/dts/imx6dl-riotboard.dts | 55 +++++++++++++-------------------
arch/arm/boot/dts/imx6qdl-wandboard.dtsi | 40 ++++++++++-------------
2 files changed, 39 insertions(+), 56 deletions(-)
diff --git a/arch/arm/boot/dts/imx6dl-riotboard.dts b/arch/arm/boot/dts/imx6dl-riotboard.dts
index 2e98c92adff7..a52e05934e3a 100644
--- a/arch/arm/boot/dts/imx6dl-riotboard.dts
+++ b/arch/arm/boot/dts/imx6dl-riotboard.dts
@@ -19,38 +19,6 @@
reg = <0x10000000 0x40000000>;
};
- regulators {
- compatible = "simple-bus";
- #address-cells = <1>;
- #size-cells = <0>;
-
- reg_2p5v: regulator at 0 {
- compatible = "regulator-fixed";
- reg = <0>;
- regulator-name = "2P5V";
- regulator-min-microvolt = <2500000>;
- regulator-max-microvolt = <2500000>;
- };
-
- reg_3p3v: regulator at 1 {
- compatible = "regulator-fixed";
- reg = <1>;
- regulator-name = "3P3V";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- };
-
- reg_usb_otg_vbus: regulator at 2 {
- compatible = "regulator-fixed";
- reg = <2>;
- regulator-name = "usb_otg_vbus";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- gpio = <&gpio3 22 0>;
- enable-active-high;
- };
- };
-
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
@@ -82,6 +50,29 @@
mux-int-port = <1>;
mux-ext-port = <3>;
};
+
+ reg_2p5v: fixedregulator at 0 {
+ compatible = "regulator-fixed";
+ regulator-name = "2P5V";
+ regulator-min-microvolt = <2500000>;
+ regulator-max-microvolt = <2500000>;
+ };
+
+ reg_3p3v: fixedregulator at 1 {
+ compatible = "regulator-fixed";
+ regulator-name = "3P3V";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
+ reg_usb_otg_vbus: fixedregulator at 2 {
+ compatible = "regulator-fixed";
+ regulator-name = "usb_otg_vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ gpio = <&gpio3 22 0>;
+ enable-active-high;
+ };
};
&audmux {
diff --git a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
index ed96d7b5feab..ff7e824dfd28 100644
--- a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
@@ -12,30 +12,6 @@
#include <dt-bindings/gpio/gpio.h>
/ {
- regulators {
- compatible = "simple-bus";
- #address-cells = <1>;
- #size-cells = <0>;
-
- reg_2p5v: regulator at 0 {
- compatible = "regulator-fixed";
- reg = <0>;
- regulator-name = "2P5V";
- regulator-min-microvolt = <2500000>;
- regulator-max-microvolt = <2500000>;
- regulator-always-on;
- };
-
- reg_3p3v: regulator at 1 {
- compatible = "regulator-fixed";
- reg = <1>;
- regulator-name = "3P3V";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- regulator-always-on;
- };
- };
-
sound {
compatible = "fsl,imx6-wandboard-sgtl5000",
"fsl,imx-audio-sgtl5000";
@@ -56,6 +32,22 @@
spdif-controller = <&spdif>;
spdif-out;
};
+
+ reg_2p5v: fixedregulator at 0 {
+ compatible = "regulator-fixed";
+ regulator-name = "2P5V";
+ regulator-min-microvolt = <2500000>;
+ regulator-max-microvolt = <2500000>;
+ regulator-always-on;
+ };
+
+ reg_3p3v: fixedregulator at 1 {
+ compatible = "regulator-fixed";
+ regulator-name = "3P3V";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ };
};
&audmux {
--
2.11.0
^ permalink raw reply related
* [PATCH 2/3] ARM: dts: imx6qdl-wandboard: enable USB OTG
From: Alexander Kurz @ 2018-05-26 18:30 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180526183053.14029-1-akurz@blala.de>
Enable USB OTG (dual-role) on the Wandboard.
Note, that the USB_OTG_VBUS current is quite limited due to a 22R resistor
in the power line. Hence, the overcurrent signal of 1A will never be
triggered on this board.
Signed-off-by: Alexander Kurz <akurz@blala.de>
---
arch/arm/boot/dts/imx6qdl-wandboard.dtsi | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
index ff7e824dfd28..4ac8ee355c42 100644
--- a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
@@ -48,6 +48,16 @@
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
+
+ reg_usb_otg_vbus: fixedregulator at 2 {
+ compatible = "regulator-fixed";
+ regulator-name = "usb_otg_vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usbotgvbus>;
+ gpio = <&gpio3 22 GPIO_ACTIVE_LOW>;
+ };
};
&audmux {
@@ -162,6 +172,12 @@
>;
};
+ pinctrl_usbotgvbus: usbotgvbusgrp {
+ fsl,pins = <
+ MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x130b0
+ >;
+ };
+
pinctrl_usdhc1: usdhc1grp {
fsl,pins = <
MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17059
@@ -236,10 +252,11 @@
};
&usbotg {
+ vbus-supply = <®_usb_otg_vbus>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usbotg>;
disable-over-current;
- dr_mode = "peripheral";
+ dr_mode = "otg";
status = "okay";
};
--
2.11.0
^ permalink raw reply related
* [PATCH 3/3] ARM: dts: imx6dl-riotboard: fix OTG regulator polarity
From: Alexander Kurz @ 2018-05-26 18:30 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180526183053.14029-1-akurz@blala.de>
USB OTG power is switched on when the GPIO is pulled low.
Signed-off-by: Alexander Kurz <akurz@blala.de>
---
arch/arm/boot/dts/imx6dl-riotboard.dts | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/arch/arm/boot/dts/imx6dl-riotboard.dts b/arch/arm/boot/dts/imx6dl-riotboard.dts
index a52e05934e3a..ef3b270c15e5 100644
--- a/arch/arm/boot/dts/imx6dl-riotboard.dts
+++ b/arch/arm/boot/dts/imx6dl-riotboard.dts
@@ -70,8 +70,7 @@
regulator-name = "usb_otg_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
- gpio = <&gpio3 22 0>;
- enable-active-high;
+ gpio = <&gpio3 22 GPIO_ACTIVE_LOW>;
};
};
--
2.11.0
^ permalink raw reply related
* [GIT PULL v2] arm64: hisilicon fixes for 4.17
From: Wei Xu @ 2018-05-26 18:37 UTC (permalink / raw)
To: linux-arm-kernel
Hi Olof, Hi Arnd,
Please help to pull the following fix.
Sorry for the late fix pull since we just got the patch.
And if the pull is too late, I will rebase the patch after 4.18-rc1 released.
Thanks!
Best Regards,
Wei
---
The following changes since commit 60cc43fc888428bb2f18f08997432d426a243338:
Linux 4.17-rc1 (2018-04-15 18:24:20 -0700)
are available in the git repository at:
git://github.com/hisilicon/linux-hisi.git tags/hisi-fixes-for-4.17v2
for you to fetch changes up to 9c6d26df1fae6ad4718d51c48e6517913304ed27:
arm64: dts: hikey: Fix eMMC corruption regression (2018-05-26 17:51:47 +0100)
----------------------------------------------------------------
ARM64: hisi fixes for 4.17
- Remove eMMC max-frequency property to fix eMMC corruption on hikey board
----------------------------------------------------------------
John Stultz (1):
arm64: dts: hikey: Fix eMMC corruption regression
arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 1 -
1 file changed, 1 deletion(-)
^ permalink raw reply
* [PATCH] ARM: Fix i2c-gpio GPIO descriptor tables
From: Olof Johansson @ 2018-05-26 18:44 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180526163734.30098-1-linus.walleij@linaro.org>
On Sat, May 26, 2018 at 06:37:34PM +0200, Linus Walleij wrote:
> I used bad names in my clumsiness when rewriting many board
> files to use GPIO descriptors instead of platform data. A few
> had the platform_device ID set to -1 which would indeed give
> the device name "i2c-gpio".
>
> But several had it set to >=0 which gives the names
> "i2c-gpio.0", "i2c-gpio.1" ...
>
> Fix the offending instances in the ARM tree. Sorry for the
> mess.
>
> Fixes: b2e63555592f ("i2c: gpio: Convert to use descriptors")
> Cc: Wolfram Sang <wsa@the-dreams.de>
> Cc: Simon Guinot <simon.guinot@sequanux.org>
> Reported-by: Simon Guinot <simon.guinot@sequanux.org>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> ARM SoC folks: please apply this directly for fixes if
> it check out fine.
> (The fact that it took so long to discover tells us something
> about how used these board files are.)
Applied to fixes, I've got one last batch going in today so I'll include it
there.
-Olof
^ permalink raw reply
* [GIT PULL] ARM: at91: DT for 4.18
From: Olof Johansson @ 2018-05-26 18:45 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180525225033.GA26989@piout.net>
On Sat, May 26, 2018 at 12:50:33AM +0200, Alexandre Belloni wrote:
> Arnd, Olof,
>
> I'm a bit late for this very small PR, as I had to extend the expiration
> date for my GPG signature key.
>
> Two small DT changes that have no functional impact.
>
> The following changes since commit 60cc43fc888428bb2f18f08997432d426a243338:
>
> Linux 4.17-rc1 (2018-04-15 18:24:20 -0700)
>
> are available in the Git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux.git tags/at91-ab-4.18-dt
>
> for you to fetch changes up to a642693882ce417683012a211ca9d6e65bae1dc4:
>
> ARM: dts: at91-sama5d2_xplained: Use IRQ_TYPE specifier (2018-05-14 15:29:52 +0200)
>
> ----------------------------------------------------------------
> AT91 DT for 4.18:
>
> - small DT improvements without functional changes
>
> ----------------------------------------------------------------
> Dmitry Torokhov (1):
> ARM: dts: at91: sama5d4ek: use canonical compatible for touchscreen
>
> Hern?n Gonzalez (1):
> ARM: dts: at91-sama5d2_xplained: Use IRQ_TYPE specifier
Merged, thanks.
-Olof
^ permalink raw reply
* [GIT PULL] Qualcomm Driver updates for 4.18 - RESEND
From: Olof Johansson @ 2018-05-26 18:52 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1527287624-26491-1-git-send-email-andy.gross@linaro.org>
On Fri, May 25, 2018 at 05:33:44PM -0500, Andy Gross wrote:
> The following changes since commit 60cc43fc888428bb2f18f08997432d426a243338:
>
> Linux 4.17-rc1 (2018-04-15 18:24:20 -0700)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux.git tags/qcom-drivers-for-4.18
>
> for you to fetch changes up to 6d361c1db7b69fddf5748cf212169ab57bb13a6e:
>
> soc: qcom: smem: introduce qcom_smem_virt_to_phys() (2018-05-25 15:53:59 -0500)
Merged into next/late; if there's an -rc7 it'll go in with the regular pull
requests.
-Olof
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox