Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ARM: dts: imx: Pass an empty 'chosen' node
From: Uwe Kleine-König @ 2016-12-19 21:53 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <CAOMZO5Be3f4YmGO0FJbeGZO55CJd9P9QO28SfhPLYuivtSHk7w@mail.gmail.com>

On Mon, Dec 19, 2016 at 07:30:25PM -0200, Fabio Estevam wrote:
> Hi Uwe,
> 
> On Mon, Dec 19, 2016 at 4:41 PM, Uwe Kleine-K?nig
> <u.kleine-koenig@pengutronix.de> wrote:
> 
> > wouldn't it be better to fix the decompressor code to eventually create
> > the /chosen node when it doesn't exist?
> 
> Thanks for the suggestion.
> 
> I don't have a Barebox setup handy, but would the following change fix
> it as you propose?
> 
> --- a/arch/arm/boot/compressed/atags_to_fdt.c
> +++ b/arch/arm/boot/compressed/atags_to_fdt.c
> @@ -66,13 +66,21 @@ static uint32_t get_cell_size(const void *fdt)
>         return cell_size;
>  }
> 
> -static void merge_fdt_bootargs(void *fdt, const char *fdt_cmdline)
> +static int merge_fdt_bootargs(void *fdt, const char *fdt_cmdline)
>  {
>         char cmdline[COMMAND_LINE_SIZE];
>         const char *fdt_bootargs;
>         char *ptr = cmdline;
> +       int chosen_off;
>         int len = 0;
> 
> +       /* find or add chosen node */
> +       chosen_off = fdt_path_offset(fdt, "/chosen");
> +       if (chosen_off == -FDT_ERR_NOTFOUND)
> +               chosen_off = fdt_add_subnode(fdt, 0, "chosen");
> +       if (chosen_off < 0)
> +               return chosen_off;

I would have done:

	ret = fdt_add_subnode(fdt, 0, "chosen")
	if (ret < 0 && ret != -FDT_ERR_EXISTS)
		return -ESOMETHING;

but I don't have the right machine@hand. Will check tomorrow.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply

* [PATCH pci/host-iproc] PCI: iproc: Allow more than slot 0 on PAXC
From: Ray Jui @ 2016-12-19 22:01 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20161219213042.GA2862@C02RW35GFVH8>



On 12/19/2016 1:30 PM, Andy Gospodarek wrote:
> On Mon, Dec 19, 2016 at 10:54:15AM -0800, Ray Jui wrote:
>>
>>
>> On 12/8/2016 1:30 PM, Andy Gospodarek wrote:
>>> The iproc host driver limits the number of slots that are available on
>>> PAXC devices.  Enforcing this limit prevents VFs from being created
>>> beyond the first port.  After this change it is possible to create VFs
>>> associated with all four devices.
>>>
>>> The first four devices below are the PFs and the next four are the newly
>>> created VFs:
>>>
>>> 0008:01:00.0 Ethernet controller: Broadcom Limited Device 16cd
>>> 0008:01:00.1 Ethernet controller: Broadcom Limited Device 16cd
>>> 0008:01:00.2 Ethernet controller: Broadcom Limited Device 16cd
>>> 0008:01:00.3 Ethernet controller: Broadcom Limited Device 16cd
>>> 0008:01:00.4 Ethernet controller: Broadcom Limited BCM57304 NetXtreme-C Ethernet Virtual Function
>>> 0008:01:01.0 Ethernet controller: Broadcom Limited BCM57304 NetXtreme-C Ethernet Virtual Function
>>> 0008:01:01.4 Ethernet controller: Broadcom Limited BCM57304 NetXtreme-C Ethernet Virtual Function
>>> 0008:01:02.0 Ethernet controller: Broadcom Limited BCM57304 NetXtreme-C Ethernet Virtual Function
>>>
>>> Based on the git history around 923c6bb1f641 ("PCI: iproc: Allow multiple
>>> devices except on PAXC") and 943ebae781f5 ("PCI: iproc: Add PAXC interface
>>> support") I expect there may be an unmentioned or unknown-to-me reason why this
>>> code exists.  I certainly cannot create and use VFs without some kind of change
>>> around this space, so I would like to see the current limitation simply removed.
>>>
>>> Fixes: 923c6bb1f641 ("PCI: iproc: Allow multiple devices except on PAXC")
>>
>>> Signed-off-by: Andy Gospodarek <gospo@broadcom.com>
>>> ---
>>>  drivers/pci/host/pcie-iproc.c | 8 --------
>>>  1 file changed, 8 deletions(-)
>>>
>>> diff --git a/drivers/pci/host/pcie-iproc.c b/drivers/pci/host/pcie-iproc.c
>>> index 3ebc025..9311826 100644
>>> --- a/drivers/pci/host/pcie-iproc.c
>>> +++ b/drivers/pci/host/pcie-iproc.c
>>> @@ -477,14 +477,6 @@ static void __iomem *iproc_pcie_map_cfg_bus(struct pci_bus *bus,
>>>  			return (pcie->base + offset);
>>>  	}
>>>  
>>> -	/*
>>> -	 * PAXC is connected to an internally emulated EP within the SoC.  It
>>> -	 * allows only one device.
>>> -	 */
>>> -	if (pcie->ep_is_internal)
>>> -		if (slot > 0)
>>> -			return NULL;
>>> -
>>>  	/* EP device access */
>>>  	val = (busno << CFG_ADDR_BUS_NUM_SHIFT) |
>>>  		(slot << CFG_ADDR_DEV_NUM_SHIFT) |
>>>
>>
>> With this change, standard v4.9 kernel would crash on a NS2 SVK with the
>> log shown below. This is inline with my previous observation and
>> therefore slot number has been limited to only zero for the PAXC
>> interface. Does it require more than just this change in order for the
>> kernel to boot to complete?
>>
>> [    2.190515] OF: PCI: host bridge /pcie at 60c00000 ranges:
>> [    2.196400] OF: PCI:   MEM 0x60000000..0x60bfffff -> 0x00000000
>> [    2.203135] iproc-pcie 60c00000.pcie: PCI host bridge to bus 0008:00
>> [    2.210289] pci_bus 0008:00: root bus resource [bus 00-01]
>> [    2.216349] pci_bus 0008:00: root bus resource [mem
>> 0x60000000-0x60bfffff] (bus address [0x00000000-0x00bfffff])
>> [    2.227769] iproc-pcie 60c00000.pcie: not using iProc MSI
>> [    2.234050] pci 0008:00:00.0: bridge configuration invalid ([bus
>> 00-00]), reconfiguring
>> [    2.244285] Bad mode in Error handler detected on CPU1, code
>> 0xbf000002 -- SError
>> [    2.252661] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.9.0+ #24
>> [    2.259430] Hardware name: Broadcom NS2 SVK (DT)
>> [    2.264550] task: ffff8000fb488000 task.stack: ffff8000fb490000
>> [    2.271161] PC is at pci_generic_config_read32+0x74/0xa0
>> [    2.277043] LR is at pci_generic_config_read32+0x28/0xa0
>> [    2.283005] pc : [<ffff00000839d984>] lr : [<ffff00000839d938>]
>> pstate: 200000c5
>> [    2.291225] sp : ffff8000fb4937f0
>> [    2.294937] x29: ffff8000fb4937f0 x28: ffff8000fadb9000
>> [    2.300884] x27: ffff8000faf27098 x26: 0000000000000000
>> [    2.306803] x25: 0000000000000000 x24: ffff8000fadb9400
>> [    2.312757] x23: 0000000000000040 x22: ffff0000089c55d8
>> [    2.318730] x21: 0000000000000010 x20: ffff8000fb49391c
>> [    2.324666] x19: 0000000000000000 x18: 000000000000077f
>> [    2.330594] x17: ffffffffffffffff x16: ffff000008a49fff
>> [    2.336539] x15: ffff000008a49fff x14: 0000000000000000
>> [    2.342502] x13: 0000000000000007 x12: 0000000000000018
>> [    2.348456] x11: 0101010101010101 x10: 7f7f7f7f7f7f7f7f
>> [    2.354392] x9 : 0000000000000000 x8 : ffff8000fa80e680
>> [    2.360355] x7 : 000000000000ffff x6 : ffff8000faf0ca98
>> [    2.366300] x5 : 0000000000000002 x4 : ffff8000fb49389c
>> [    2.372290] x3 : 0000000000000004 x2 : 0000000000100001
>> [    2.378209] x1 : ffff000008a49000 x0 : 0000000000000000
>> [    2.384145]
>> [    2.385807] Internal error: Oops - bad mode: 0 [#1] PREEMPT SMP
>> [    2.392351] Modules linked in:
>> [    2.395770] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.9.0+ #24
>> [    2.402529] Hardware name: Broadcom NS2 SVK (DT)
>> [    2.407693] task: ffff8000fb488000 task.stack: ffff8000fb490000
>> [    2.414301] PC is at pci_generic_config_read32+0x74/0xa0
>> [    2.420299] LR is at pci_generic_config_read32+0x28/0xa0
>> [    2.426279] pc : [<ffff00000839d984>] lr : [<ffff00000839d938>]
>> pstate: 200000c5
>> [    2.434552] sp : ffff8000fb4937f0
>> [    2.438246] x29: ffff8000fb4937f0 x28: ffff8000fadb9000
>> [    2.444209] x27: ffff8000faf27098 x26: 0000000000000000
>> [    2.450137] x25: 0000000000000000 x24: ffff8000fadb9400
>> [    2.456091] x23: 0000000000000040 x22: ffff0000089c55d8
>> [    2.462037] x21: 0000000000000010 x20: ffff8000fb49391c
>> [    2.467947] x19: 0000000000000000 x18: 000000000000077f
>> [    2.473945] x17: ffffffffffffffff x16: ffff000008a49fff
>> [    2.479881] x15: ffff000008a49fff x14: 0000000000000000
>> [    2.485826] x13: 0000000000000007 x12: 0000000000000018
>> [    2.491798] x11: 0101010101010101 x10: 7f7f7f7f7f7f7f7f
>> [    2.497752] x9 : 0000000000000000 x8 : ffff8000fa80e680
>> [    2.503689] x7 : 000000000000ffff x6 : ffff8000faf0ca98
>> [    2.509643] x5 : 0000000000000002 x4 : ffff8000fb49389c
>> [    2.515561] x3 : 0000000000000004 x2 : 0000000000100001
>> [    2.521453] x1 : ffff000008a49000 x0 : 0000000000000000
>> [    2.527388]
>> [    2.529058] Process swapper/0 (pid: 1, stack limit = 0xffff8000fb490020)
>> [    2.536607] Stack: (0xffff8000fb4937f0 to 0xffff8000fb494000)
>> [    2.543044] 37e0:                                   ffff8000fb493820
>> ffff0000083b65cc
>> [    2.551830] 3800: ffff8000fadb9400 ffff00000867606c 0000000000000004
>> ffff8000fb49389c
>> [    2.560481] 3820: ffff8000fb493840 ffff00000839dcc8 ffff8000fadb9400
>> ffff00000839dce0
>> [    2.569158] 3840: ffff8000fb4938a0 ffff00000839fcb8 0000000000000000
>> ffff8000fb49391c
>> [    2.577915] 3860: 000000000000ea60 0000000000000001 0000000000000010
>> 0000000000000000
>> [    2.586718] 3880: ffff8000faef9000 0000000000000000 ffff8000fb4938b0
>> 00000000083a94d8
>> [    2.595548] 38a0: ffff8000fb4938e0 ffff0000083a1380 0000000000000000
>> ffff8000fadb9400
>> [    2.604359] 38c0: 0000000000000010 0000000000000001 ffff0000087fb000
>> ffff8000fadb9528
>> [    2.613180] 38e0: ffff8000fb493920 ffff0000083a1444 ffff8000fadb9400
>> ffff8000fadb9400
>> [    2.621938] 3900: 0000000000000010 0000000000000004 ffff8000fb493960
>> fffffffffb493960
>> [    2.630767] 3920: ffff8000fb493960 ffff0000083a237c 0000000000000018
>> ffff8000fadb9400
>> [    2.639543] 3940: 0000000000000001 0000000000000000 ffff8000fadb9000
>> 0000000000000007
>> [    2.648355] 3960: ffff8000fb4939b0 ffff0000083a20d8 ffff8000faf27000
>> ffff8000fadb9400
>> [    2.657166] 3980: 0000000000000001 0000000000000000 0000000000000000
>> 0000000000000001
>> [    2.665960] 39a0: 0000000000000000 0000000000000018 ffff8000fb493a30
>> ffff0000083a23d8
>> [    2.674789] 39c0: ffff8000faf27000 ffff8000fadb9000 ffff8000fadb9028
>> 0000000000000000
>> [    2.683547] 39e0: ffff0000087fb000 ffff8000fadb9128 0000000000000001
>> ffff0000088c0460
>> [    2.692341] 3a00: ffff0000089a4000 ffff0000088f8b60 ffff8000fb49396c
>> 0000000000000000
>> [    2.701117] 3a20: 0000000000000000 00ff010000000000 ffff8000fb493a80
>> ffff0000083b731c
>> [    2.709910] 3a40: ffff8000faf0e218 ffff8000fffe7748 ffff8000fb63f410
>> ffff8000fadb9000
>> [    2.718695] 3a60: ffff0000086e9000 ffff8000fffe1e00 ffff0000088f8bc0
>> 6c6071652c6c3175
>> [    2.727489] 3a80: ffff8000fb493bc0 ffff0000083b8774 0000000000000000
>> ffff8000faf0e218
>> [    2.736291] 3aa0: ffff8000fb63f410 ffff8000fb493c10 ffff8000fffe1e00
>> ffff8000fb63f400
>> [    2.745058] 3ac0: ffff0000088f8bc0 ffff0000088c0460 ffff0000089a4000
>> ffff0000088f8b60
>> [    2.753816] 3ae0: ffff8000fb493b20 ffff00000858b7b0 ffff8000fb493c08
>> ffff000008855f08
>> [    2.762583] 3b00: ffff0000089b6000 ffff8000fb493c10 ffff8000fffe1e00
>> 0000000060000000
>> [    2.771376] 3b20: ffff8000fb493bc0 ffff0000083b8744 0000000000000000
>> ffff8000faf0e218
>> [    2.780125] 3b40: ffff8000fb63f410 ffff8000fb493c10 ffff8000fffe1e00
>> ffff8000fb63f400
>> [    2.788937] 3b60: ffff8000fffe1e00 0000000000000000 ffff0000004d454d
>> 0000000200000007
>> [    2.797731] 3b80: ffff7dfffe8009dc ffff7dfffe8009dc 0000000200000007
>> ffff000000000083
>> [    2.806533] 3ba0: 0000000000000000 0000000060000000 0000000000c00000
>> 0000000000000200
>> [    2.815372] 3bc0: ffff8000fb493c60 ffff000008414ef8 ffff000008962258
>> ffff8000fb63f410
>> [    2.824121] 3be0: 0000000000000000 ffff000008962280 0000000000000000
>> ffff0000089a4000
>> [    2.832950] 3c00: ffff8000fb493c40 ffffffffffffffff ffff8000fb493c10
>> ffff8000fb493c10
>> [    2.841717] 3c20: 0000000060c00000 0000000060c00fff ffff8000fffe1ea8
>> 0000000000000200
>> [    2.850529] 3c40: 0000000000000000 0000000000000000 0000000000000000
>> 0000000000000000
>> [    2.859358] 3c60: ffff8000fb493c80 ffff000008413688 ffff8000fb63f410
>> ffff0000089c8000
>> [    2.868161] 3c80: ffff8000fb493cc0 ffff0000084137c0 ffff8000fb63f410
>> ffff000008962280
>> [    2.876919] 3ca0: ffff8000fb63f470 ffff00000896cd30 ffff00000896c000
>> ffff00000841190c
>> [    2.885677] 3cc0: ffff8000fb493cf0 ffff000008411900 0000000000000000
>> ffff000008962280
>> [    2.894497] 3ce0: ffff000008413720 ffff8000fb493d40 ffff8000fb493d30
>> ffff000008413124
>> [    2.903308] 3d00: ffff000008962280 ffff8000faf0e100 0000000000000000
>> ffff00000867606c
>> [    2.912058] 3d20: ffff8000fb43eca8 ffff8000fb625b68 ffff8000fb493d40
>> ffff000008412d84
>> [    2.920815] 3d40: ffff8000fb493d80 ffff000008413eb4 ffff000008962280
>> ffff0000088e1438
>> [    2.929591] 3d60: 0000000000000000 ffff0000088f8b30 ffff0000088aba00
>> ffff0000089c5000
>> [    2.938358] 3d80: ffff8000fb493db0 ffff000008414eb8 ffff8000fb490000
>> ffff0000088e1438
>> [    2.947134] 3da0: 0000000000000000 0000000000000000 ffff8000fb493dc0
>> ffff0000088e1450
>> [    2.955936] 3dc0: ffff8000fb493dd0 ffff000008083144 ffff8000fb493e40
>> ffff0000088c0c98
>> [    2.964658] 3de0: ffff000008907240 0000000000000006 00000000000000e7
>> ffff0000088f8b30
>> [    2.973506] 3e00: ffff8000fb493e00 ffff0000087f42c8 ffff8000fb493e20
>> ffff0000087f3ae8
>> [    2.982326] 3e20: 0000000600000006 0000000000000000 0000000000000000
>> ffff0000088aba00
>> [    2.991129] 3e40: ffff8000fb493ea0 ffff000008678154 ffff000008678144
>> 0000000000000000
>> [    2.999922] 3e60: 0000000000000000 0000000000000000 0000000000000000
>> 0000000000000000
>> [    3.008671] 3e80: 0000000000000000 0000000000000000 0000000000000000
>> 0000000000000000
>> [    3.017500] 3ea0: 0000000000000000 ffff000008082e80 ffff000008678144
>> 0000000000000000
>> [    3.026294] 3ec0: 0000000000000000 0000000000000000 0000000000000000
>> 0000000000000000
>> [    3.035043] 3ee0: 0000000000000000 0000000000000000 0000000000000000
>> 0000000000000000
>> [    3.043818] 3f00: 0000000000000000 0000000000000000 0000000000000000
>> 0000000000000000
>> [    3.052639] 3f20: 0000000000000000 0000000000000000 0000000000000000
>> 0000000000000000
>> [    3.061432] 3f40: 0000000000000000 0000000000000000 0000000000000000
>> 0000000000000000
>> [    3.070207] 3f60: 0000000000000000 0000000000000000 0000000000000000
>> 0000000000000000
>> [    3.079036] 3f80: 0000000000000000 0000000000000000 0000000000000000
>> 0000000000000000
>> [    3.087820] 3fa0: 0000000000000000 0000000000000000 0000000000000000
>> 0000000000000000
>> [    3.096623] 3fc0: 0000000000000000 0000000000000005 0000000000000000
>> 0000000000000000
>> [    3.105398] 3fe0: 0000000000000000 0000000000000000 000000017b493ff0
>> 000000017b493ff8
>> [    3.114173] Call trace:
>> [    3.116920] [<ffff00000839d984>] pci_generic_config_read32+0x74/0xa0
>> [    3.124039] [<ffff0000083b65cc>] iproc_pcie_config_read32+0x2c/0xe0
>> [    3.131041] [<ffff00000839dcc8>] pci_bus_read_config_dword+0x80/0xb0
>> [    3.138143] [<ffff00000839fcb8>] pci_bus_read_dev_vendor_id+0x30/0x104
>> [    3.145459] [<ffff0000083a1380>] pci_scan_single_device+0x50/0xc4
>> [    3.152345] [<ffff0000083a1444>] pci_scan_slot+0x50/0xf0
>> [    3.158334] [<ffff0000083a237c>] pci_scan_child_bus+0x50/0x164
>> [    3.164798] [<ffff0000083a20d8>] pci_scan_bridge+0x2c0/0x514
>> [    3.171154] [<ffff0000083a23d8>] pci_scan_child_bus+0xac/0x164
>> [    3.177690] [<ffff0000083b731c>] iproc_pcie_setup+0x71c/0xc78
>> [    3.184172] [<ffff0000083b8774>] iproc_pcie_pltfm_probe+0x170/0x260
>> [    3.191176] [<ffff000008414ef8>] platform_drv_probe+0x38/0x7c
>> [    3.197640] [<ffff000008413688>] really_probe+0x1b0/0x248
>> [    3.203701] [<ffff0000084137c0>] __driver_attach+0xa0/0xb0
>> [    3.209878] [<ffff000008411900>] bus_for_each_dev+0x58/0x98
>> [    3.216110] [<ffff000008413124>] driver_attach+0x20/0x28
>> [    3.222063] [<ffff000008412d84>] bus_add_driver+0x1c8/0x22c
>> [    3.228285] [<ffff000008413eb4>] driver_register+0x68/0x108
>> [    3.234517] [<ffff000008414eb8>] __platform_driver_register+0x4c/0x54
>> [    3.241772] [<ffff0000088e1450>] iproc_pcie_pltfm_driver_init+0x18/0x20
>> [    3.249224] [<ffff000008083144>] do_one_initcall+0x38/0x128
>> [    3.255466] [<ffff0000088c0c98>] kernel_init_freeable+0x14c/0x1ec
>> [    3.262344] [<ffff000008678154>] kernel_init+0x10/0xfc
>> [    3.268118] [<ffff000008082e80>] ret_from_fork+0x10/0x50
>> [    3.274108] Code: 52800000 f9400bf3 a8c37bfd d65f03c0 (b9000080)
>> [    3.280984] ---[ end trace d90bb74924ac9e8e ]---
>> [    3.286202] note: swapper/0[1] exited with preempt_count 1
>> [    3.292340] Kernel panic - not syncing: Attempted to kill init!
>> exitcode=0x0000000b
>> [    3.292340]
>>
> 
> I originally tested this patch with the following DT change to enable
> that PCI slot on the host-iproc branch (uname reports it as 4.9.0-rc1+).
> I also just tested it again to be sure and I do not see the same crash
> you see.  I'll test Linus' tree and see if I can reproduce what you are
> seeing.  We can also share configs offline if needed.
> 

Does this require a certain version of Chimp firmware to run on Nitro
for it to work properly?

Thanks,

Ray

^ permalink raw reply

* [PATCH 1/6] of: documentation: add bindings documentation for TS-4600
From: Rob Herring @ 2016-12-19 22:05 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20161214231237.17496-2-sebastien.bourdelin@savoirfairelinux.com>

On Wed, Dec 14, 2016 at 06:12:31PM -0500, Sebastien Bourdelin wrote:
> This adds the documentation for the TS-4600 by Technologic Systems.
> 
> Signed-off-by: Sebastien Bourdelin <sebastien.bourdelin@savoirfairelinux.com>
> ---
>  Documentation/devicetree/bindings/arm/technologic.txt | 5 +++++
>  1 file changed, 5 insertions(+)

Acked-by: Rob Herring <robh@kernel.org>

^ permalink raw reply

* [PATCH 3/6] dt-bindings: bus: Add documentation for the Technologic Systems NBUS
From: Rob Herring @ 2016-12-19 22:12 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20161214231237.17496-4-sebastien.bourdelin@savoirfairelinux.com>

On Wed, Dec 14, 2016 at 06:12:33PM -0500, Sebastien Bourdelin wrote:
> Add binding documentation for the Technologic Systems NBUS that is used
> to interface with peripherals in the FPGA of the TS-4600 SoM.
> 
> Signed-off-by: Sebastien Bourdelin <sebastien.bourdelin@savoirfairelinux.com>
> ---
>  Documentation/devicetree/bindings/bus/ts-nbus.txt | 50 +++++++++++++++++++++++
>  1 file changed, 50 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/bus/ts-nbus.txt
> 
> diff --git a/Documentation/devicetree/bindings/bus/ts-nbus.txt b/Documentation/devicetree/bindings/bus/ts-nbus.txt
> new file mode 100644
> index 0000000..2f777ee
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/bus/ts-nbus.txt
> @@ -0,0 +1,50 @@
> +Technologic Systems NBUS
> +
> +The NBUS is a bus used to interface with peripherals in the Technologic
> +Systems FPGA on the TS-4600 SoM.
> +
> +Required properties :
> + - compatible     : "technologic,ts-nbus", "simple-bus"
> + - #address-cells : must be 1
> + - #size-cells    : must be 0
> + - pws            : The PWM pin connected to the clock line on the FPGA

Using PWM binding?

> + - data-gpios	  : The GPIO pin connected to the data line on the FPGA
> + - csn-gpios	  : The GPIO pin connected to the csn line on the FPGA
> + - txrx-gpios	  : The GPIO pin connected to the txrx line on the FPGA
> + - strobe-gpios	  : The GPIO pin connected to the stobe line on the FPGA
> + - ale-gpios	  : The GPIO pin connected to the ale line on the FPGA
> + - rdy-gpios	  : The GPIO pin connected to the rdy line on the FPGA

These all need vendor prefix.

This is not any sort of standard bus?

> +
> +Child nodes:
> +
> +The NBUS node can contain zero or more child nodes representing peripherals
> +on the bus.
> +
> +Example:
> +
> +	nbus {
> +		compatible = "technologic,ts-nbus", "simple-bus";

I don't think simple-bus is really valid here. Don't you need the nbus 
driver before the devices are usable?

> +		pinctrl-0 = <&nbus_pins>;
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		pwms = <&pwm 2 83>;
> +		data-gpios   = <&gpio0 0 GPIO_ACTIVE_HIGH
> +				&gpio0 1 GPIO_ACTIVE_HIGH
> +				&gpio0 2 GPIO_ACTIVE_HIGH
> +				&gpio0 3 GPIO_ACTIVE_HIGH
> +				&gpio0 4 GPIO_ACTIVE_HIGH
> +				&gpio0 5 GPIO_ACTIVE_HIGH
> +				&gpio0 6 GPIO_ACTIVE_HIGH
> +				&gpio0 7 GPIO_ACTIVE_HIGH>;
> +		csn-gpios    = <&gpio0 16 GPIO_ACTIVE_HIGH>;
> +		txrx-gpios   = <&gpio0 24 GPIO_ACTIVE_HIGH>;
> +		strobe-gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>;
> +		ale-gpios    = <&gpio0 26 GPIO_ACTIVE_HIGH>;
> +		rdy-gpios    = <&gpio0 21 GPIO_ACTIVE_HIGH>;
> +
> +		wdt at 2a {

watchdog at ...

> +			compatible = "...";
> +
> +			/* ... */
> +		};
> +	};
> -- 
> 2.10.2
> 
> --
> To unsubscribe from this list: send the line "unsubscribe devicetree" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* [PATCH 6/6] watchdog: ts4600: add driver for TS-4600 watchdog
From: Rob Herring @ 2016-12-19 22:13 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20161214231237.17496-7-sebastien.bourdelin@savoirfairelinux.com>

On Wed, Dec 14, 2016 at 06:12:36PM -0500, Sebastien Bourdelin wrote:
> This watchdog is instantiated in a FPGA and can only be access using a
> GPIOs bit-banged bus, called the NBUS by Technologic Systems.
> The watchdog is made of only one register, called the feed register.
> Writing to this register will re-arm the watchdog for a given time (and
> enable it if it was disable). It can be disabled by writing a special
> value into it.
> 
> Signed-off-by: Sebastien Bourdelin <sebastien.bourdelin@savoirfairelinux.com>
> ---
>  .../devicetree/bindings/watchdog/ts4600-wdt.txt    |  16 ++
>  arch/arm/boot/dts/imx28-ts4600-common.dtsi         |   5 +

Acked-by: Rob Herring <robh@kernel.org>

>  drivers/watchdog/Kconfig                           |  10 +
>  drivers/watchdog/Makefile                          |   1 +
>  drivers/watchdog/ts4600_wdt.c                      | 213 +++++++++++++++++++++
>  5 files changed, 245 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/watchdog/ts4600-wdt.txt
>  create mode 100644 drivers/watchdog/ts4600_wdt.c

^ permalink raw reply

* [PATCH pci/host-iproc] PCI: iproc: Allow more than slot 0 on PAXC
From: Andy Gospodarek @ 2016-12-19 22:15 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <fdd96c8d-93ae-81e8-57e7-457a5d7f21a6@broadcom.com>

On Mon, Dec 19, 2016 at 02:01:59PM -0800, Ray Jui wrote:
> 
> 
> On 12/19/2016 1:30 PM, Andy Gospodarek wrote:
> > On Mon, Dec 19, 2016 at 10:54:15AM -0800, Ray Jui wrote:
> >>
> >>
> >> On 12/8/2016 1:30 PM, Andy Gospodarek wrote:
> >>> The iproc host driver limits the number of slots that are available on
> >>> PAXC devices.  Enforcing this limit prevents VFs from being created
> >>> beyond the first port.  After this change it is possible to create VFs
> >>> associated with all four devices.
> >>>
> >>> The first four devices below are the PFs and the next four are the newly
> >>> created VFs:
> >>>
> >>> 0008:01:00.0 Ethernet controller: Broadcom Limited Device 16cd
> >>> 0008:01:00.1 Ethernet controller: Broadcom Limited Device 16cd
> >>> 0008:01:00.2 Ethernet controller: Broadcom Limited Device 16cd
> >>> 0008:01:00.3 Ethernet controller: Broadcom Limited Device 16cd
> >>> 0008:01:00.4 Ethernet controller: Broadcom Limited BCM57304 NetXtreme-C Ethernet Virtual Function
> >>> 0008:01:01.0 Ethernet controller: Broadcom Limited BCM57304 NetXtreme-C Ethernet Virtual Function
> >>> 0008:01:01.4 Ethernet controller: Broadcom Limited BCM57304 NetXtreme-C Ethernet Virtual Function
> >>> 0008:01:02.0 Ethernet controller: Broadcom Limited BCM57304 NetXtreme-C Ethernet Virtual Function
> >>>
> >>> Based on the git history around 923c6bb1f641 ("PCI: iproc: Allow multiple
> >>> devices except on PAXC") and 943ebae781f5 ("PCI: iproc: Add PAXC interface
> >>> support") I expect there may be an unmentioned or unknown-to-me reason why this
> >>> code exists.  I certainly cannot create and use VFs without some kind of change
> >>> around this space, so I would like to see the current limitation simply removed.
> >>>
> >>> Fixes: 923c6bb1f641 ("PCI: iproc: Allow multiple devices except on PAXC")
> >>
> >>> Signed-off-by: Andy Gospodarek <gospo@broadcom.com>
> >>> ---
> >>>  drivers/pci/host/pcie-iproc.c | 8 --------
> >>>  1 file changed, 8 deletions(-)
> >>>
> >>> diff --git a/drivers/pci/host/pcie-iproc.c b/drivers/pci/host/pcie-iproc.c
> >>> index 3ebc025..9311826 100644
> >>> --- a/drivers/pci/host/pcie-iproc.c
> >>> +++ b/drivers/pci/host/pcie-iproc.c
> >>> @@ -477,14 +477,6 @@ static void __iomem *iproc_pcie_map_cfg_bus(struct pci_bus *bus,
> >>>  			return (pcie->base + offset);
> >>>  	}
> >>>  
> >>> -	/*
> >>> -	 * PAXC is connected to an internally emulated EP within the SoC.  It
> >>> -	 * allows only one device.
> >>> -	 */
> >>> -	if (pcie->ep_is_internal)
> >>> -		if (slot > 0)
> >>> -			return NULL;
> >>> -
> >>>  	/* EP device access */
> >>>  	val = (busno << CFG_ADDR_BUS_NUM_SHIFT) |
> >>>  		(slot << CFG_ADDR_DEV_NUM_SHIFT) |
> >>>
> >>
> >> With this change, standard v4.9 kernel would crash on a NS2 SVK with the
> >> log shown below. This is inline with my previous observation and
> >> therefore slot number has been limited to only zero for the PAXC
> >> interface. Does it require more than just this change in order for the
> >> kernel to boot to complete?
> >>
> >> [    2.190515] OF: PCI: host bridge /pcie at 60c00000 ranges:
> >> [    2.196400] OF: PCI:   MEM 0x60000000..0x60bfffff -> 0x00000000
> >> [    2.203135] iproc-pcie 60c00000.pcie: PCI host bridge to bus 0008:00
> >> [    2.210289] pci_bus 0008:00: root bus resource [bus 00-01]
> >> [    2.216349] pci_bus 0008:00: root bus resource [mem
> >> 0x60000000-0x60bfffff] (bus address [0x00000000-0x00bfffff])
> >> [    2.227769] iproc-pcie 60c00000.pcie: not using iProc MSI
> >> [    2.234050] pci 0008:00:00.0: bridge configuration invalid ([bus
> >> 00-00]), reconfiguring
> >> [    2.244285] Bad mode in Error handler detected on CPU1, code
> >> 0xbf000002 -- SError
> >> [    2.252661] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.9.0+ #24
> >> [    2.259430] Hardware name: Broadcom NS2 SVK (DT)
> >> [    2.264550] task: ffff8000fb488000 task.stack: ffff8000fb490000
> >> [    2.271161] PC is at pci_generic_config_read32+0x74/0xa0
> >> [    2.277043] LR is at pci_generic_config_read32+0x28/0xa0
> >> [    2.283005] pc : [<ffff00000839d984>] lr : [<ffff00000839d938>]
> >> pstate: 200000c5
> >> [    2.291225] sp : ffff8000fb4937f0
> >> [    2.294937] x29: ffff8000fb4937f0 x28: ffff8000fadb9000
> >> [    2.300884] x27: ffff8000faf27098 x26: 0000000000000000
> >> [    2.306803] x25: 0000000000000000 x24: ffff8000fadb9400
> >> [    2.312757] x23: 0000000000000040 x22: ffff0000089c55d8
> >> [    2.318730] x21: 0000000000000010 x20: ffff8000fb49391c
> >> [    2.324666] x19: 0000000000000000 x18: 000000000000077f
> >> [    2.330594] x17: ffffffffffffffff x16: ffff000008a49fff
> >> [    2.336539] x15: ffff000008a49fff x14: 0000000000000000
> >> [    2.342502] x13: 0000000000000007 x12: 0000000000000018
> >> [    2.348456] x11: 0101010101010101 x10: 7f7f7f7f7f7f7f7f
> >> [    2.354392] x9 : 0000000000000000 x8 : ffff8000fa80e680
> >> [    2.360355] x7 : 000000000000ffff x6 : ffff8000faf0ca98
> >> [    2.366300] x5 : 0000000000000002 x4 : ffff8000fb49389c
> >> [    2.372290] x3 : 0000000000000004 x2 : 0000000000100001
> >> [    2.378209] x1 : ffff000008a49000 x0 : 0000000000000000
> >> [    2.384145]
> >> [    2.385807] Internal error: Oops - bad mode: 0 [#1] PREEMPT SMP
> >> [    2.392351] Modules linked in:
> >> [    2.395770] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.9.0+ #24
> >> [    2.402529] Hardware name: Broadcom NS2 SVK (DT)
> >> [    2.407693] task: ffff8000fb488000 task.stack: ffff8000fb490000
> >> [    2.414301] PC is at pci_generic_config_read32+0x74/0xa0
> >> [    2.420299] LR is at pci_generic_config_read32+0x28/0xa0
> >> [    2.426279] pc : [<ffff00000839d984>] lr : [<ffff00000839d938>]
> >> pstate: 200000c5
> >> [    2.434552] sp : ffff8000fb4937f0
> >> [    2.438246] x29: ffff8000fb4937f0 x28: ffff8000fadb9000
> >> [    2.444209] x27: ffff8000faf27098 x26: 0000000000000000
> >> [    2.450137] x25: 0000000000000000 x24: ffff8000fadb9400
> >> [    2.456091] x23: 0000000000000040 x22: ffff0000089c55d8
> >> [    2.462037] x21: 0000000000000010 x20: ffff8000fb49391c
> >> [    2.467947] x19: 0000000000000000 x18: 000000000000077f
> >> [    2.473945] x17: ffffffffffffffff x16: ffff000008a49fff
> >> [    2.479881] x15: ffff000008a49fff x14: 0000000000000000
> >> [    2.485826] x13: 0000000000000007 x12: 0000000000000018
> >> [    2.491798] x11: 0101010101010101 x10: 7f7f7f7f7f7f7f7f
> >> [    2.497752] x9 : 0000000000000000 x8 : ffff8000fa80e680
> >> [    2.503689] x7 : 000000000000ffff x6 : ffff8000faf0ca98
> >> [    2.509643] x5 : 0000000000000002 x4 : ffff8000fb49389c
> >> [    2.515561] x3 : 0000000000000004 x2 : 0000000000100001
> >> [    2.521453] x1 : ffff000008a49000 x0 : 0000000000000000
> >> [    2.527388]
> >> [    2.529058] Process swapper/0 (pid: 1, stack limit = 0xffff8000fb490020)
> >> [    2.536607] Stack: (0xffff8000fb4937f0 to 0xffff8000fb494000)
> >> [    2.543044] 37e0:                                   ffff8000fb493820
> >> ffff0000083b65cc
> >> [    2.551830] 3800: ffff8000fadb9400 ffff00000867606c 0000000000000004
> >> ffff8000fb49389c
> >> [    2.560481] 3820: ffff8000fb493840 ffff00000839dcc8 ffff8000fadb9400
> >> ffff00000839dce0
> >> [    2.569158] 3840: ffff8000fb4938a0 ffff00000839fcb8 0000000000000000
> >> ffff8000fb49391c
> >> [    2.577915] 3860: 000000000000ea60 0000000000000001 0000000000000010
> >> 0000000000000000
> >> [    2.586718] 3880: ffff8000faef9000 0000000000000000 ffff8000fb4938b0
> >> 00000000083a94d8
> >> [    2.595548] 38a0: ffff8000fb4938e0 ffff0000083a1380 0000000000000000
> >> ffff8000fadb9400
> >> [    2.604359] 38c0: 0000000000000010 0000000000000001 ffff0000087fb000
> >> ffff8000fadb9528
> >> [    2.613180] 38e0: ffff8000fb493920 ffff0000083a1444 ffff8000fadb9400
> >> ffff8000fadb9400
> >> [    2.621938] 3900: 0000000000000010 0000000000000004 ffff8000fb493960
> >> fffffffffb493960
> >> [    2.630767] 3920: ffff8000fb493960 ffff0000083a237c 0000000000000018
> >> ffff8000fadb9400
> >> [    2.639543] 3940: 0000000000000001 0000000000000000 ffff8000fadb9000
> >> 0000000000000007
> >> [    2.648355] 3960: ffff8000fb4939b0 ffff0000083a20d8 ffff8000faf27000
> >> ffff8000fadb9400
> >> [    2.657166] 3980: 0000000000000001 0000000000000000 0000000000000000
> >> 0000000000000001
> >> [    2.665960] 39a0: 0000000000000000 0000000000000018 ffff8000fb493a30
> >> ffff0000083a23d8
> >> [    2.674789] 39c0: ffff8000faf27000 ffff8000fadb9000 ffff8000fadb9028
> >> 0000000000000000
> >> [    2.683547] 39e0: ffff0000087fb000 ffff8000fadb9128 0000000000000001
> >> ffff0000088c0460
> >> [    2.692341] 3a00: ffff0000089a4000 ffff0000088f8b60 ffff8000fb49396c
> >> 0000000000000000
> >> [    2.701117] 3a20: 0000000000000000 00ff010000000000 ffff8000fb493a80
> >> ffff0000083b731c
> >> [    2.709910] 3a40: ffff8000faf0e218 ffff8000fffe7748 ffff8000fb63f410
> >> ffff8000fadb9000
> >> [    2.718695] 3a60: ffff0000086e9000 ffff8000fffe1e00 ffff0000088f8bc0
> >> 6c6071652c6c3175
> >> [    2.727489] 3a80: ffff8000fb493bc0 ffff0000083b8774 0000000000000000
> >> ffff8000faf0e218
> >> [    2.736291] 3aa0: ffff8000fb63f410 ffff8000fb493c10 ffff8000fffe1e00
> >> ffff8000fb63f400
> >> [    2.745058] 3ac0: ffff0000088f8bc0 ffff0000088c0460 ffff0000089a4000
> >> ffff0000088f8b60
> >> [    2.753816] 3ae0: ffff8000fb493b20 ffff00000858b7b0 ffff8000fb493c08
> >> ffff000008855f08
> >> [    2.762583] 3b00: ffff0000089b6000 ffff8000fb493c10 ffff8000fffe1e00
> >> 0000000060000000
> >> [    2.771376] 3b20: ffff8000fb493bc0 ffff0000083b8744 0000000000000000
> >> ffff8000faf0e218
> >> [    2.780125] 3b40: ffff8000fb63f410 ffff8000fb493c10 ffff8000fffe1e00
> >> ffff8000fb63f400
> >> [    2.788937] 3b60: ffff8000fffe1e00 0000000000000000 ffff0000004d454d
> >> 0000000200000007
> >> [    2.797731] 3b80: ffff7dfffe8009dc ffff7dfffe8009dc 0000000200000007
> >> ffff000000000083
> >> [    2.806533] 3ba0: 0000000000000000 0000000060000000 0000000000c00000
> >> 0000000000000200
> >> [    2.815372] 3bc0: ffff8000fb493c60 ffff000008414ef8 ffff000008962258
> >> ffff8000fb63f410
> >> [    2.824121] 3be0: 0000000000000000 ffff000008962280 0000000000000000
> >> ffff0000089a4000
> >> [    2.832950] 3c00: ffff8000fb493c40 ffffffffffffffff ffff8000fb493c10
> >> ffff8000fb493c10
> >> [    2.841717] 3c20: 0000000060c00000 0000000060c00fff ffff8000fffe1ea8
> >> 0000000000000200
> >> [    2.850529] 3c40: 0000000000000000 0000000000000000 0000000000000000
> >> 0000000000000000
> >> [    2.859358] 3c60: ffff8000fb493c80 ffff000008413688 ffff8000fb63f410
> >> ffff0000089c8000
> >> [    2.868161] 3c80: ffff8000fb493cc0 ffff0000084137c0 ffff8000fb63f410
> >> ffff000008962280
> >> [    2.876919] 3ca0: ffff8000fb63f470 ffff00000896cd30 ffff00000896c000
> >> ffff00000841190c
> >> [    2.885677] 3cc0: ffff8000fb493cf0 ffff000008411900 0000000000000000
> >> ffff000008962280
> >> [    2.894497] 3ce0: ffff000008413720 ffff8000fb493d40 ffff8000fb493d30
> >> ffff000008413124
> >> [    2.903308] 3d00: ffff000008962280 ffff8000faf0e100 0000000000000000
> >> ffff00000867606c
> >> [    2.912058] 3d20: ffff8000fb43eca8 ffff8000fb625b68 ffff8000fb493d40
> >> ffff000008412d84
> >> [    2.920815] 3d40: ffff8000fb493d80 ffff000008413eb4 ffff000008962280
> >> ffff0000088e1438
> >> [    2.929591] 3d60: 0000000000000000 ffff0000088f8b30 ffff0000088aba00
> >> ffff0000089c5000
> >> [    2.938358] 3d80: ffff8000fb493db0 ffff000008414eb8 ffff8000fb490000
> >> ffff0000088e1438
> >> [    2.947134] 3da0: 0000000000000000 0000000000000000 ffff8000fb493dc0
> >> ffff0000088e1450
> >> [    2.955936] 3dc0: ffff8000fb493dd0 ffff000008083144 ffff8000fb493e40
> >> ffff0000088c0c98
> >> [    2.964658] 3de0: ffff000008907240 0000000000000006 00000000000000e7
> >> ffff0000088f8b30
> >> [    2.973506] 3e00: ffff8000fb493e00 ffff0000087f42c8 ffff8000fb493e20
> >> ffff0000087f3ae8
> >> [    2.982326] 3e20: 0000000600000006 0000000000000000 0000000000000000
> >> ffff0000088aba00
> >> [    2.991129] 3e40: ffff8000fb493ea0 ffff000008678154 ffff000008678144
> >> 0000000000000000
> >> [    2.999922] 3e60: 0000000000000000 0000000000000000 0000000000000000
> >> 0000000000000000
> >> [    3.008671] 3e80: 0000000000000000 0000000000000000 0000000000000000
> >> 0000000000000000
> >> [    3.017500] 3ea0: 0000000000000000 ffff000008082e80 ffff000008678144
> >> 0000000000000000
> >> [    3.026294] 3ec0: 0000000000000000 0000000000000000 0000000000000000
> >> 0000000000000000
> >> [    3.035043] 3ee0: 0000000000000000 0000000000000000 0000000000000000
> >> 0000000000000000
> >> [    3.043818] 3f00: 0000000000000000 0000000000000000 0000000000000000
> >> 0000000000000000
> >> [    3.052639] 3f20: 0000000000000000 0000000000000000 0000000000000000
> >> 0000000000000000
> >> [    3.061432] 3f40: 0000000000000000 0000000000000000 0000000000000000
> >> 0000000000000000
> >> [    3.070207] 3f60: 0000000000000000 0000000000000000 0000000000000000
> >> 0000000000000000
> >> [    3.079036] 3f80: 0000000000000000 0000000000000000 0000000000000000
> >> 0000000000000000
> >> [    3.087820] 3fa0: 0000000000000000 0000000000000000 0000000000000000
> >> 0000000000000000
> >> [    3.096623] 3fc0: 0000000000000000 0000000000000005 0000000000000000
> >> 0000000000000000
> >> [    3.105398] 3fe0: 0000000000000000 0000000000000000 000000017b493ff0
> >> 000000017b493ff8
> >> [    3.114173] Call trace:
> >> [    3.116920] [<ffff00000839d984>] pci_generic_config_read32+0x74/0xa0
> >> [    3.124039] [<ffff0000083b65cc>] iproc_pcie_config_read32+0x2c/0xe0
> >> [    3.131041] [<ffff00000839dcc8>] pci_bus_read_config_dword+0x80/0xb0
> >> [    3.138143] [<ffff00000839fcb8>] pci_bus_read_dev_vendor_id+0x30/0x104
> >> [    3.145459] [<ffff0000083a1380>] pci_scan_single_device+0x50/0xc4
> >> [    3.152345] [<ffff0000083a1444>] pci_scan_slot+0x50/0xf0
> >> [    3.158334] [<ffff0000083a237c>] pci_scan_child_bus+0x50/0x164
> >> [    3.164798] [<ffff0000083a20d8>] pci_scan_bridge+0x2c0/0x514
> >> [    3.171154] [<ffff0000083a23d8>] pci_scan_child_bus+0xac/0x164
> >> [    3.177690] [<ffff0000083b731c>] iproc_pcie_setup+0x71c/0xc78
> >> [    3.184172] [<ffff0000083b8774>] iproc_pcie_pltfm_probe+0x170/0x260
> >> [    3.191176] [<ffff000008414ef8>] platform_drv_probe+0x38/0x7c
> >> [    3.197640] [<ffff000008413688>] really_probe+0x1b0/0x248
> >> [    3.203701] [<ffff0000084137c0>] __driver_attach+0xa0/0xb0
> >> [    3.209878] [<ffff000008411900>] bus_for_each_dev+0x58/0x98
> >> [    3.216110] [<ffff000008413124>] driver_attach+0x20/0x28
> >> [    3.222063] [<ffff000008412d84>] bus_add_driver+0x1c8/0x22c
> >> [    3.228285] [<ffff000008413eb4>] driver_register+0x68/0x108
> >> [    3.234517] [<ffff000008414eb8>] __platform_driver_register+0x4c/0x54
> >> [    3.241772] [<ffff0000088e1450>] iproc_pcie_pltfm_driver_init+0x18/0x20
> >> [    3.249224] [<ffff000008083144>] do_one_initcall+0x38/0x128
> >> [    3.255466] [<ffff0000088c0c98>] kernel_init_freeable+0x14c/0x1ec
> >> [    3.262344] [<ffff000008678154>] kernel_init+0x10/0xfc
> >> [    3.268118] [<ffff000008082e80>] ret_from_fork+0x10/0x50
> >> [    3.274108] Code: 52800000 f9400bf3 a8c37bfd d65f03c0 (b9000080)
> >> [    3.280984] ---[ end trace d90bb74924ac9e8e ]---
> >> [    3.286202] note: swapper/0[1] exited with preempt_count 1
> >> [    3.292340] Kernel panic - not syncing: Attempted to kill init!
> >> exitcode=0x0000000b
> >> [    3.292340]
> >>
> > 
> > I originally tested this patch with the following DT change to enable
> > that PCI slot on the host-iproc branch (uname reports it as 4.9.0-rc1+).
> > I also just tested it again to be sure and I do not see the same crash
> > you see.  I'll test Linus' tree and see if I can reproduce what you are
> > seeing.  We can also share configs offline if needed.
> > 
> 
> Does this require a certain version of Chimp firmware to run on Nitro
> for it to work properly?

It _may_.  I've been testing with 0.0.7.0 -- which version are you using?

^ permalink raw reply

* [PATCH 1/2] dt-bindings: Document the hi3660 clock bindings
From: Rob Herring @ 2016-12-19 22:15 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1481781493-6188-2-git-send-email-zhangfei.gao@linaro.org>

On Thu, Dec 15, 2016 at 01:58:12PM +0800, Zhangfei Gao wrote:
> Add DT bindings documentation for hi3660 SoC clock.
> 
> Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>
> ---
>  .../devicetree/bindings/clock/hi3660-clock.txt     | 42 ++++++++++++++++++++++
>  1 file changed, 42 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/clock/hi3660-clock.txt
> 
> diff --git a/Documentation/devicetree/bindings/clock/hi3660-clock.txt b/Documentation/devicetree/bindings/clock/hi3660-clock.txt
> new file mode 100644
> index 0000000..7296fd7
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/hi3660-clock.txt
> @@ -0,0 +1,42 @@
> +* Hisilicon Hi3660 Clock Controller
> +
> +The Hi3660 clock controller generates and supplies clock to various
> +controllers within the Hi3660 SoC.
> +
> +Required Properties:
> +
> +- compatible: the compatible should be one of the following strings to
> +	indicate the clock controller functionality.
> +
> +	- "hisilicon,hi3660-crgctrl"
> +	- "hisilicon,hi3660-pctrl"
> +	- "hisilicon,hi3660-pmuctrl"
> +	- "hisilicon,hi3660-sctrl"
> +	- "hisilicon,hi3660-iomcu"
> +
> +- reg: physical base address of the controller and length of memory mapped
> +  region.
> +
> +- #clock-cells: should be 1.
> +
> +Each clock is assigned an identifier and client nodes use this identifier
> +to specify the clock which they consume.
> +
> +All these identifier could be found in <dt-bindings/clock/hi3660-clock.h>.
> +
> +Examples:
> +	crg_ctrl: crg_ctrl at fff35000 {

clock-controller at ...

> +		compatible = "hisilicon,hi3660-crgctrl", "syscon";
> +		reg = <0x0 0xfff35000 0x0 0x1000>;
> +		#clock-cells = <1>;
> +	};
> +
> +	uart0: uart at fdf02000 {

serial at ...

> +		compatible = "arm,pl011", "arm,primecell";
> +		reg = <0x0 0xfdf02000 0x0 0x1000>;
> +		interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
> +		clocks = <&crg_ctrl HI3660_CLK_MUX_UART0>,
> +			 <&crg_ctrl HI3660_PCLK>;
> +		clock-names = "uartclk", "apb_pclk";
> +		status = "disabled";
> +	};
> -- 
> 2.7.4
> 

^ permalink raw reply

* [PATCHv6] support for AD5820 camera auto-focus coil
From: Pavel Machek @ 2016-12-19 22:23 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20161215065022.GC16630@valkosipuli.retiisi.org.uk>

Hi!

> Hi Pali and Tony,
> On Wed, Dec 14, 2016 at 07:08:19AM -0800, Tony Lindgren wrote:
> > * Pali Roh?r <pali.rohar@gmail.com> [161214 05:38]:
> > > On Monday 08 August 2016 23:41:32 Pavel Machek wrote:
> > > > On Mon 2016-08-08 11:09:56, Sakari Ailus wrote:
> > > > > On Fri, Aug 05, 2016 at 12:26:11PM +0200, Pavel Machek wrote:
> > > > > > This adds support for AD5820 autofocus coil, found for example in
> > > > > > Nokia N900 smartphone.
> > > > > 
> > > > > Thanks, Pavel!
> > > > > 
> > > > > Let's use V4L2_CID_FOCUS_ABSOLUTE, as is in the patch. If we get
> > > > > something better in the future, we'll switch to that then.
> > > > > 
> > > > > I've applied this to ad5820 branch in my tree.
> > > > 
> > > > Thanks. If I understands things correctly, both DTS patch and this
> > > > patch are waiting in your tree, so we should be good to go for 4.9
> > > > (unless some unexpected problems surface)?
> > > > 
> > > > Best regards,
> > > > 									Pavel
> > > 
> > > Was DTS patch merged into 4.9? At least I do not see updated that dts 
> > > file omap3-n900.dts in linus tree...
> > 
> > If it's not in current mainline or next, it's off my radar so sounds
> > like I've somehow missed it and needs resending..
> 
> Where's this patch? I remember seeing the driver patch and the DT
> documentation but no actual DT source patch for the N900.

The patch was not yet submitted. Autofocus coil is not too useful
withou camera support, and we don't yet have support for v4l subdevs
for omap3. I have it in the camera tree, but there are still pieces to
be done before this is useful.

Best regards,
									Pavel

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20161219/39969b35/attachment.sig>

^ permalink raw reply

* [PATCH] staging: vc04_services: Fix bracing on single statement blocks
From: Eric Anholt @ 2016-12-19 22:33 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20161218054822.GA16024@mainline.lan>

Aaron Moore <aaron@atamisk.net> writes:

> Fix coding style issue caught by checkpatch.pl relating to braces on
> single statement blocks. This issue was corrected in 3 locations.
>
> Signed-off-by: Aaron Moore <aaron@atamisk.net>

Reviewed-by: Eric Anholt <eric@anholt.net>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20161219/f7d2dc40/attachment.sig>

^ permalink raw reply

* [PATCH 1/3 v2] iio: adc: add device tree bindings for Qualcomm PM8xxx ADCs
From: Rob Herring @ 2016-12-19 22:50 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1481842089-13999-1-git-send-email-linus.walleij@linaro.org>

On Thu, Dec 15, 2016 at 11:48:09PM +0100, Linus Walleij wrote:
> This adds the device tree bindings for the Qualcomm PM8xxx
> ADCs. This is based on the existing DT bindings for the
> SPMI ADC so there are hopefully no controversial features.
> 
> Cc: devicetree at vger.kernel.org
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-arm-msm at vger.kernel.org
> Cc: Ivan T. Ivanov <iivanov.xz@gmail.com>
> Cc: Andy Gross <andy.gross@linaro.org>
> Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
> Cc: Stephen Boyd <sboyd@codeaurora.org>
> Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> ChangeLog v1->v2:
> - Spelling fixes
> ---
>  .../bindings/iio/adc/qcom,pm8xxx-xoadc.txt         | 160 +++++++++++++++++++++
>  1 file changed, 160 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/iio/adc/qcom,pm8xxx-xoadc.txt
> 
> diff --git a/Documentation/devicetree/bindings/iio/adc/qcom,pm8xxx-xoadc.txt b/Documentation/devicetree/bindings/iio/adc/qcom,pm8xxx-xoadc.txt
> new file mode 100644
> index 000000000000..3c6bca5b4edf
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/adc/qcom,pm8xxx-xoadc.txt
> @@ -0,0 +1,160 @@
> +Qualcomm's PM8xxx voltage XOADC
> +
> +The Qualcomm PM8xxx PMICs contain a HK/XO ADC (Housekeeping/Crystal
> +oscillator ADC) encompassing PM8018, PM8038, PM8058, PM8917 and PM8921.
> +
> +Required properties:
> +
> +- compatible: should be one of:
> +  "qcom,pm8018-adc"
> +  "qcom,pm8038-adc"
> +  "qcom,pm8058-adc"
> +  "qcom,pm8917-adc"
> +  "qcom,pm8921-adc"
> +
> +- reg: should contain the ADC base address in the PMIC, typically
> +  0x197.
> +
> +The following required properties are standard for IO channels, see
> +iio-bindings.txt for more details:
> +
> +- #address-cells: should be set to <1>
> +
> +- #size-cells: should be set to <0>
> +
> +- #io-channel-cells: should be set to <1>
> +
> +- interrupts: should refer to the parent PMIC interrupt controller
> +  and reference the proper ADC interrupt.
> +
> +Required subnodes:
> +
> +The ADC channels are configured as subnodes of the ADC. Since some of
> +them are used for calibrating the ADC, these nodes are compulsory:
> +
> +ref_625mv {

ref at c

> +	reg = <0x0c>;
> +};
> +
> +ref_1250mv {
> +	reg = <0x0d>;
> +};
> +
> +ref_muxoff {
> +	reg = <0x0f>;
> +};
> +
> +These three nodes are used for absolute and ratiometric calibration
> +and only need to have these reg values: they are by hardware definition
> +1:1 ratio converters that sample 625, 1250 and 0 milliV and create
> +an interpolation calibration for all other ADCs.
> +
> +Optional subnodes: any channels other than channel 0x0c, 0x0d and
> +0x0f are optional.
> +
> +Required channel node properties:
> +
> +- reg: should contain the hardware channel number in the range
> +  0 .. 0x0f (4 bits). The hardware only supports 16 channels.
> +
> +Optional channel node properties:
> +
> +- qcom,decimation:
> +  Value type: <u32>
> +  Definition: This parameter is used to decrease the ADC sampling rate.
> +          Quicker measurements can be made by reducing the decimation ratio.
> +          Valid values are 512, 1024, 2048, 4096.
> +          If the property is not found, a default value of 512 will be used.
> +
> +- qcom,ratiometric:
> +  Value type: <empty>
> +  Definition: Channel calibration type. If this property is specified
> +          VADC will use the VDD reference (1.8V) and GND for channel
> +          calibration. If the property is not found, the channel will be
> +          calibrated with the 0.625V and 1.25V reference channels, also
> +          known as an absolute calibration.
> +
> +- qcom,ratiometric-ref:
> +  Value type: <u32>
> +  Definition: The reference voltage pair when using ratiometric
> +          calibration:
> +	  0 = XO_IN/XOADC_GND
> +	  1 = PMIC_IN/XOADC_GND
> +	  2 = PMIC_IN/BMS_CSP
> +	  3 (invalid)
> +	  4 = XOADC_GND/XOADC_GND
> +	  5 = XOADC_VREF/XOADC_GND
> +
> +Example:
> +
> +xoadc: xoadc at 197 {
> +	compatible = "qcom,pm8058-adc";
> +	reg = <0x197>;
> +	interrupt-parent = <&pm8058>;
> +	interrupts = <76 1>;
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +	#io-channel-cells = <1>;
> +
> +	vcoin {
> +		reg = <0x00>;

If you have a reg property, then you should have a unit address on all 
of these.

These should really all be something like adc-channel at ... Not sure if we 
have a standard node name for ADC channels. Or don't put any of this in 
DT.

> +	};
> +	vbat {
> +		reg = <0x01>;
> +	};
> +	dcin {
> +		reg = <0x02>;
> +	};
> +	ichg {
> +		reg = <0x03>;
> +	};
> +	vph_pwr {
> +		reg = <0x04>;
> +	};
> +	mpp5 {
> +		reg = <0x05>;
> +	};
> +	mpp6 {
> +		reg = <0x06>;
> +	};
> +	mpp7 {
> +		reg = <0x07>;
> +	};
> +	mpp8 {
> +		reg = <0x08>;
> +	};
> +	mpp9 {
> +		reg = <0x09>;
> +	};
> +	usb_vbus {
> +		reg = <0x0a>;
> +	};
> +	die_temp {
> +		reg = <0x0b>;
> +	};
> +	ref_625mv {
> +		reg = <0x0c>;
> +	};
> +	ref_1250mv {
> +		reg = <0x0d>;
> +	};
> +	ref_325mv {
> +		reg = <0x0e>;
> +	};
> +	ref_muxoff {
> +		reg = <0x0f>;
> +	};
> +};

^ permalink raw reply

* [PATCHv2 2/8] dt-bindings: document the STM32 RTC bindings
From: Rob Herring @ 2016-12-19 23:10 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1481878257-29163-3-git-send-email-amelie.delaunay@st.com>

On Fri, Dec 16, 2016 at 09:50:51AM +0100, Amelie Delaunay wrote:
> This patch adds documentation of device tree bindings for the STM32 RTC.
> 
> Signed-off-by: Amelie Delaunay <amelie.delaunay@st.com>
> ---
>  .../devicetree/bindings/rtc/st,stm32-rtc.txt       | 27 ++++++++++++++++++++++
>  1 file changed, 27 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/rtc/st,stm32-rtc.txt

Acked-by: Rob Herring <robh@kernel.org>

^ permalink raw reply

* [PATCH] crypto: testmgr: Use linear alias for test input
From: Laura Abbott @ 2016-12-19 23:37 UTC (permalink / raw)
  To: linux-arm-kernel

Christopher Covington reported a crash on aarch64 on recent Fedora
kernels:

kernel BUG at ./include/linux/scatterlist.h:140!
Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
Modules linked in:
CPU: 2 PID: 752 Comm: cryptomgr_test Not tainted 4.9.0-11815-ge93b1cc #162
Hardware name: linux,dummy-virt (DT)
task: ffff80007c650080 task.stack: ffff800008910000
PC is at sg_init_one+0xa0/0xb8
LR is at sg_init_one+0x24/0xb8
...
[<ffff000008398db8>] sg_init_one+0xa0/0xb8
[<ffff000008350a44>] test_acomp+0x10c/0x438
[<ffff000008350e20>] alg_test_comp+0xb0/0x118
[<ffff00000834f28c>] alg_test+0x17c/0x2f0
[<ffff00000834c6a4>] cryptomgr_test+0x44/0x50
[<ffff0000080dac70>] kthread+0xf8/0x128
[<ffff000008082ec0>] ret_from_fork+0x10/0x50

The test vectors used for input are part of the kernel image. These
inputs are passed as a buffer to sg_init_one which eventually blows up
with BUG_ON(!virt_addr_valid(buf)). On arm64, virt_addr_valid returns
false for the kernel image since virt_to_page will not return the
correct page. The kernel image is also aliased to the linear map so get
the linear alias and pass that to the scatterlist instead.

Reported-by: Christopher Covington <cov@codeaurora.org>
Fixes: d7db7a882deb ("crypto: acomp - update testmgr with support for acomp")
Signed-off-by: Laura Abbott <labbott@redhat.com>
---
x86 supports virt_addr_valid working on kernel image addresses but arm64 is
more strict. This is the direction things have been moving with my
CONFIG_DEBUG_VIRTUAL series for arm64 which is tightening the definition of
__pa/__pa_symbol.
---
 crypto/testmgr.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index f616ad7..f5bac10 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -1464,7 +1464,7 @@ static int test_acomp(struct crypto_acomp *tfm, struct comp_testvec *ctemplate,
 
 		memset(output, 0, dlen);
 		init_completion(&result.completion);
-		sg_init_one(&src, ctemplate[i].input, ilen);
+		sg_init_one(&src, __va(__pa_symbol(ctemplate[i].input)), ilen);
 		sg_init_one(&dst, output, dlen);
 
 		req = acomp_request_alloc(tfm);
@@ -1513,7 +1513,7 @@ static int test_acomp(struct crypto_acomp *tfm, struct comp_testvec *ctemplate,
 
 		memset(output, 0, dlen);
 		init_completion(&result.completion);
-		sg_init_one(&src, dtemplate[i].input, ilen);
+		sg_init_one(&src, __va(__pa_symbol(dtemplate[i].input)), ilen);
 		sg_init_one(&dst, output, dlen);
 
 		req = acomp_request_alloc(tfm);
-- 
2.7.4

^ permalink raw reply related

* [PATCH] tty: hvc_dcc: Add basic early_con support
From: Nishanth Menon @ 2016-12-20  0:23 UTC (permalink / raw)
  To: linux-arm-kernel

In some cases, earlycon can help catch errors with kernel boot prior to
standard console is available.

Example bootargs: console=hvc0 earlycon=hvcdcc

Signed-off-by: Nishanth Menon <nm@ti.com>
---
Based on: v4.9 tag
Also applies on: next-20161219
Tested on Simulation environment (which did not have serial console option)

 drivers/tty/hvc/hvc_dcc.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/drivers/tty/hvc/hvc_dcc.c b/drivers/tty/hvc/hvc_dcc.c
index 82f240fb98f0..1ec06e550656 100644
--- a/drivers/tty/hvc/hvc_dcc.c
+++ b/drivers/tty/hvc/hvc_dcc.c
@@ -10,7 +10,9 @@
  * GNU General Public License for more details.
  */
 
+#include <linux/console.h>
 #include <linux/init.h>
+#include <linux/serial_core.h>
 
 #include <asm/dcc.h>
 #include <asm/processor.h>
@@ -94,3 +96,45 @@ static int __init hvc_dcc_init(void)
 	return PTR_ERR_OR_ZERO(p);
 }
 device_initcall(hvc_dcc_init);
+
+static int hvc_dcc_earlyputc(int c)
+{
+	unsigned long count = 0xFFFFFFFF;
+	static bool dead_dcc_earlycon;
+
+	if (dead_dcc_earlycon)
+		return -EBUSY;
+
+	while (count--) {
+		if (!(__dcc_getstatus() & DCC_STATUS_TX))
+			break;
+	}
+	if (!count) {
+		dead_dcc_earlycon = true;
+		return -EBUSY;
+	}
+	__dcc_putchar(c);
+	return 0;
+}
+
+static void hvc_dcc_earlywrite(struct console *con, const char *s,
+			       unsigned int n)
+{
+	int r;
+
+	while (n--) {
+		r = hvc_dcc_earlyputc(*s);
+		if (r)
+			break;
+		s++;
+	}
+}
+
+static int
+__init early_hvc_dcc_setup(struct earlycon_device *device, const char *opt)
+{
+	device->con->write = hvc_dcc_earlywrite;
+	return 0;
+}
+
+EARLYCON_DECLARE(hvcdcc, early_hvc_dcc_setup);
-- 
2.11.0.65.geff96d7

^ permalink raw reply related

* [PATCH v4 0/2] FPGA: TS-7300 FPGA manager
From: Florian Fainelli @ 2016-12-20  4:13 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20161218202158.10582-1-f.fainelli@gmail.com>

On 12/18/2016 12:21 PM, Florian Fainelli wrote:
> Hi all,
> 
> This patch series adds support for loading bitstreams into the Altera Cyclone II
> connected to an EP9302 on a TS-7300 board.
> 
> Changes in v4:
> 
> - fixed ops->write not to do the final configuration release
> - reordered patches
> 
> Changes in v3:
> 
> - fix write_init and write_complete signatures
> 
> Changes in v2:
> 
> - rebased against fpga/for-next
> - added defines for configuration bits and delays
> - added error mesage if ioremap() fails
> - detailed how the configuration through CPLD is done

Alan, Moritz, thanks for providing Acked-by, I was under the impression
these patches would be taken by you through the FPGA tree, since Hartley
acked the EP93xx part and since that was the tree used as a baseline.

Let me know how you want to proceed, since EP93xx is not as active as
other ARM SoCs, there may not be a specific tree where to stage these
patches (unless you take them).

Thanks!
-- 
Florian

^ permalink raw reply

* [PATCH v10 0/8] power: add power sequence library
From: Peter Chen @ 2016-12-20  4:31 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20161219191504.GA18988@kozik-lap>

On Mon, Dec 19, 2016 at 09:15:04PM +0200, Krzysztof Kozlowski wrote:
> On Mon, Nov 14, 2016 at 09:35:51AM +0800, Peter Chen wrote:
> > Hi all,
> > 
> > This is a follow-up for my last power sequence framework patch set [1].
> > According to Rob Herring and Ulf Hansson's comments[2]. The kinds of
> > power sequence instances will be added at postcore_initcall, the match
> > criteria is compatible string first, if the compatible string is not
> > matched between dts and library, it will try to use generic power sequence.
> > 	 
> > The host driver just needs to call of_pwrseq_on/of_pwrseq_off
> > if only one power sequence instance is needed, for more power sequences
> > are used, using of_pwrseq_on_list/of_pwrseq_off_list instead (eg, USB hub driver).
> > 
> > In future, if there are special power sequence requirements, the special
> > power sequence library can be created.
> > 
> > This patch set is tested on i.mx6 sabresx evk using a dts change, I use
> > two hot-plug devices to simulate this use case, the related binding
> > change is updated at patch [1/6], The udoo board changes were tested
> > using my last power sequence patch set.[3]
> > 
> > Except for hard-wired MMC and USB devices, I find the USB ULPI PHY also
> > need to power on itself before it can be found by ULPI bus.
> > 
> > [1] http://www.spinics.net/lists/linux-usb/msg142755.html
> > [2] http://www.spinics.net/lists/linux-usb/msg143106.html
> > [3] http://www.spinics.net/lists/linux-usb/msg142815.html
> > 
> > Changes for v10:
> > - Improve the kernel-doc for power sequence core, including exported APIs and
> >   main structure. [Patch 2/8]
> > - Change Kconfig, and let the user choose power sequence. [Patch 2/8]
> > - Delete EXPORT_SYMBOL and change related APIs as local, these APIs do not
> >   be intended to export currently. [Patch 2/8]
> > - Selete POWER_SEQUENCE at USB core's Kconfig. [Patch 4/8]
> 
> Hi Peter,
> 
> It is great that you continued the work on this.
> 
> I saw (in some previous mails) your repo mentioned:
> https://git.kernel.org/cgit/linux/kernel/git/peter.chen/usb.git/
> Does it contain the recent version of this patchset?
> 
> I want to build on top of it fixes for usb3503 on Odroid U3 board.

Krzysztof, I put v10 patch set at branch: pwrseq-lib. 
It seems there are no more comments I will send my v11 patch set
after new year holiday.

-- 

Best Regards,
Peter Chen

^ permalink raw reply

* [RFC v4 00/16] KVM PCIe/MSI passthrough on ARM/ARM64 and IOVA reserved regions
From: Bharat Bhushan @ 2016-12-20  4:45 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1481661034-3088-1-git-send-email-eric.auger@redhat.com>

Hi Eric,

Tested this series on NXP ARMv8 platform.

Thanks
-Bharat

> -----Original Message-----
> From: Eric Auger [mailto:eric.auger at redhat.com]
> Sent: Wednesday, December 14, 2016 2:00 AM
> To: eric.auger at redhat.com; eric.auger.pro at gmail.com;
> christoffer.dall at linaro.org; marc.zyngier at arm.com;
> robin.murphy at arm.com; alex.williamson at redhat.com;
> will.deacon at arm.com; joro at 8bytes.org; tglx at linutronix.de;
> jason at lakedaemon.net; linux-arm-kernel at lists.infradead.org
> Cc: kvm at vger.kernel.org; drjones at redhat.com; linux-
> kernel at vger.kernel.org; pranav.sawargaonkar at gmail.com;
> iommu at lists.linux-foundation.org; punit.agrawal at arm.com; Diana Madalina
> Craciun <diana.craciun@nxp.com>; gpkulkarni at gmail.com;
> shankerd at codeaurora.org; Bharat Bhushan <bharat.bhushan@nxp.com>
> Subject: [RFC v4 00/16] KVM PCIe/MSI passthrough on ARM/ARM64 and
> IOVA reserved regions
> 
> Following LPC discussions, we now report reserved regions through iommu-
> group sysfs reserved_regions attribute file.
> 
> Reserved regions are populated through the IOMMU get_resv_region
> callback (former get_dm_regions), now implemented by amd-iommu, intel-
> iommu and arm-smmu:
> - the amd-iommu reports device direct mapped regions.
> - the intel-iommu reports the [0xfee00000 - 0xfeefffff] MSI window
>   as an IOMMU_RESV_NOMAP reserved region.
> - the arm-smmu reports the MSI window (arbitrarily located at
>   0x8000000 and 1MB large).
> 
> Unsafe interrupt assignment is tested by enumerating all MSI irq domains
> and checking they support MSI remapping. This check is done in case we
> detect the iommu translates MSI (an IOMMU_RESV_MSI window exists).
> Otherwise the IRQ remapping capability is checked at IOMMU level.
> Obviously this is a defensive IRQ safety assessment.
> Assuming there are several MSI controllers in the system and at least one
> does not implement IRQ remapping, the assignment will be considered as
> unsafe (even if this controller is not acessible from the assigned devices).
> 
> The series integrates a not officially posted patch from Robin:
> "iommu/dma: Allow MSI-only cookies".
> 
> Best Regards
> 
> Eric
> 
> Git: complete series available at
> https://github.com/eauger/linux/tree/v4.9-reserved-v4
> 
> History:
> 
> RFCv3 -> RFCv4:
> - arm-smmu driver does not register PCI host bridge windows as
>   reserved regions anymore
> - Implement reserved region get/put callbacks also in arm-smmuv3
> - take the iommu_group lock on iommu_get_group_resv_regions
> - add a type field in iommu_resv_region instead of using prot
> - init the region list_head in iommu_alloc_resv_region, also
>   add type parameter
> - iommu_insert_resv_region manage overlaps and sort reserved
>   windows
> - address IRQ safety assessment by enumerating all the MSI irq
>   domains and checking the MSI_REMAP flag
> - update Documentation/ABI/testing/sysfs-kernel-iommu_groups
> - Did not add T-b since the code has significantly changed
> 
> RFCv2 -> RFCv3:
> - switch to an iommu-group sysfs API
> - use new dummy allocator provided by Robin
> - dummy allocator initialized by vfio-iommu-type1 after enumerating
>   the reserved regions
> - at the moment ARM MSI base address/size is left unchanged compared
>   to v2
> - we currently report reserved regions and not usable IOVA regions as
>   requested by Alex
> 
> RFC v1 -> v2:
> - fix intel_add_reserved_regions
> - add mutex lock/unlock in vfio_iommu_type1
> 
> 
> Eric Auger (16):
>   iommu/dma: Allow MSI-only cookies
>   iommu: Rename iommu_dm_regions into iommu_resv_regions
>   iommu: Add a new type field in iommu_resv_region
>   iommu: iommu_alloc_resv_region
>   iommu: Only map direct mapped regions
>   iommu: iommu_get_group_resv_regions
>   iommu: Implement reserved_regions iommu-group sysfs file
>   iommu/vt-d: Implement reserved region get/put callbacks
>   iommu/arm-smmu: Implement reserved region get/put callbacks
>   iommu/arm-smmu-v3: Implement reserved region get/put callbacks
>   irqdomain: Add IRQ_DOMAIN_FLAG_MSI_REMAP value
>   irqdomain: irq_domain_check_msi_remap
>   irqchip/gicv3-its: Sets IRQ_DOMAIN_FLAG_MSI_REMAP
>   vfio/type1: Allow transparent MSI IOVA allocation
>   vfio/type1: Check MSI remapping at irq domain level
>   iommu/arm-smmu: Do not advertise IOMMU_CAP_INTR_REMAP anymore
> 
>  .../ABI/testing/sysfs-kernel-iommu_groups          |   9 ++
>  drivers/iommu/amd_iommu.c                          |  21 +--
>  drivers/iommu/arm-smmu-v3.c                        |  30 +++-
>  drivers/iommu/arm-smmu.c                           |  30 +++-
>  drivers/iommu/dma-iommu.c                          | 116 +++++++++++++---
>  drivers/iommu/intel-iommu.c                        |  50 +++++--
>  drivers/iommu/iommu.c                              | 152 +++++++++++++++++++--
>  drivers/irqchip/irq-gic-v3-its.c                   |   1 +
>  drivers/vfio/vfio_iommu_type1.c                    |  37 ++++-
>  include/linux/dma-iommu.h                          |   7 +
>  include/linux/iommu.h                              |  46 +++++--
>  include/linux/irqdomain.h                          |   8 ++
>  kernel/irq/irqdomain.c                             |  24 ++++
>  13 files changed, 455 insertions(+), 76 deletions(-)
> 
> --
> 1.9.1

^ permalink raw reply

* Re: [PATCH 2/2] mfd: mc13xxx: Pass the IRQF_TRIGGER_HIGH flag.
From: Alexander Shiyan @ 2016-12-20  5:20 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1482182934-18559-3-git-send-email-lilja.magnus@gmail.com>

>???????, 20 ??????? 2016, 0:28 +03:00 ?? Magnus Lilja <lilja.magnus@gmail.com>:
>
>All supported mc13xxx devices have active high interrupt outputs. Make sure
>to configure the interrupt as active high by passing the IRQF_TRIGGER_HIGH
>flag. This is required at least on the i.MX31 PDK board.
>
>Signed-off-by: Magnus Lilja < lilja.magnus@gmail.com >
>---
>
>?drivers/mfd/mc13xxx-core.c | 2 +-
>?1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/drivers/mfd/mc13xxx-core.c b/drivers/mfd/mc13xxx-core.c
>index d7f54e4..4cbe6b7 100644
>--- a/drivers/mfd/mc13xxx-core.c
>+++ b/drivers/mfd/mc13xxx-core.c
>@@ -440,7 +440,7 @@ int mc13xxx_common_init(struct device *dev)
>?mc13xxx->irq_chip.irqs = mc13xxx->irqs;
>?mc13xxx->irq_chip.num_irqs = ARRAY_SIZE(mc13xxx->irqs);
>?
>-ret = regmap_add_irq_chip(mc13xxx->regmap, mc13xxx->irq, IRQF_ONESHOT,
>+ret = regmap_add_irq_chip(mc13xxx->regmap, mc13xxx->irq, IRQF_ONESHOT | IRQF_TRIGGER_HIGH,
>?  0, &mc13xxx->irq_chip, &mc13xxx->irq_data);
>?if (ret)
>?return ret;

IRQ line can be passed through inverter to IC.
On my opinion the best way to handle all possible situations is parse
devicetree IRQ flags and pass to the driver.

---

^ permalink raw reply

* [PATCH v4 0/2] FPGA: TS-7300 FPGA manager
From: Alan Tull @ 2016-12-20  5:25 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <c964999f-0988-dc41-5e5e-c0ff9c2455b1@gmail.com>

On Mon, 19 Dec 2016, Florian Fainelli wrote:

> On 12/18/2016 12:21 PM, Florian Fainelli wrote:
> > Hi all,
> > 
> > This patch series adds support for loading bitstreams into the Altera Cyclone II
> > connected to an EP9302 on a TS-7300 board.
> > 
> > Changes in v4:
> > 
> > - fixed ops->write not to do the final configuration release
> > - reordered patches
> > 
> > Changes in v3:
> > 
> > - fix write_init and write_complete signatures
> > 
> > Changes in v2:
> > 
> > - rebased against fpga/for-next
> > - added defines for configuration bits and delays
> > - added error mesage if ioremap() fails
> > - detailed how the configuration through CPLD is done
> 
> Alan, Moritz, thanks for providing Acked-by, I was under the impression
> these patches would be taken by you through the FPGA tree,

Hi Florain,

That's right, I'll handle it.  The FPGA tree goes in through Greg.
We're in the merge window where stuff Greg already has is going to
Linus so it's too late to get this into 4.10.  I'll be doing a pull
after that.

Alan

> since Hartley
> acked the EP93xx part and since that was the tree used as a baseline.
> 
> Let me know how you want to proceed, since EP93xx is not as active as
> other ARM SoCs, there may not be a specific tree where to stage these
> patches (unless you take them).
> 
> Thanks!
> -- 
> Florian
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fpga" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

^ permalink raw reply

* [PATCH 1/2] pinctrl: sirf: atlas7: Add missing 'of_node_put()'
From: Christophe JAILLET @ 2016-12-20  5:40 UTC (permalink / raw)
  To: linux-arm-kernel

Reference to 'sys2pci_np' should be dropped in all cases here, not only in
error handling path.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/pinctrl/sirf/pinctrl-atlas7.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/pinctrl/sirf/pinctrl-atlas7.c b/drivers/pinctrl/sirf/pinctrl-atlas7.c
index 7f3041697813..f714f67c4b64 100644
--- a/drivers/pinctrl/sirf/pinctrl-atlas7.c
+++ b/drivers/pinctrl/sirf/pinctrl-atlas7.c
@@ -5420,14 +5420,15 @@ static int atlas7_pinmux_probe(struct platform_device *pdev)
 	sys2pci_np = of_find_node_by_name(NULL, "sys2pci");
 	if (!sys2pci_np)
 		return -EINVAL;
+
 	ret = of_address_to_resource(sys2pci_np, 0, &res);
+	of_node_put(sys2pci_np);
 	if (ret)
 		return ret;
+
 	pmx->sys2pci_base = devm_ioremap_resource(&pdev->dev, &res);
-	if (IS_ERR(pmx->sys2pci_base)) {
-		of_node_put(sys2pci_np);
+	if (IS_ERR(pmx->sys2pci_base))
 		return -ENOMEM;
-	}
 
 	pmx->dev = &pdev->dev;
 
-- 
2.9.3

^ permalink raw reply related

* [PATCH 2/2] pinctrl: sirf: atlas7: Improve code layout
From: Christophe JAILLET @ 2016-12-20  5:41 UTC (permalink / raw)
  To: linux-arm-kernel

Add some tab in order to improve indentation.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/pinctrl/sirf/pinctrl-atlas7.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/pinctrl/sirf/pinctrl-atlas7.c b/drivers/pinctrl/sirf/pinctrl-atlas7.c
index f714f67c4b64..76df538fa814 100644
--- a/drivers/pinctrl/sirf/pinctrl-atlas7.c
+++ b/drivers/pinctrl/sirf/pinctrl-atlas7.c
@@ -5444,7 +5444,7 @@ static int atlas7_pinmux_probe(struct platform_device *pdev)
 		pmx->regs[idx] = of_iomap(np, idx);
 		if (!pmx->regs[idx]) {
 			dev_err(&pdev->dev,
-			"can't map ioc bank#%d registers\n", idx);
+				"can't map ioc bank#%d registers\n", idx);
 			ret = -ENOMEM;
 			goto unmap_io;
 		}
@@ -6057,8 +6057,8 @@ static int atlas7_gpio_probe(struct platform_device *pdev)
 	ret = gpiochip_add_data(chip, a7gc);
 	if (ret) {
 		dev_err(&pdev->dev,
-		"%s: error in probe function with status %d\n",
-		np->name, ret);
+			"%s: error in probe function with status %d\n",
+			np->name, ret);
 		goto failed;
 	}
 
-- 
2.9.3

^ permalink raw reply related

* [RFC] Question about freeing of resource in 'atlas7_pinmux_probe()', in file 'drivers/pinctrl/sirf/pinctrl-atlas7.c'
From: Christophe JAILLET @ 2016-12-20  5:44 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <7123e174-cc22-4a76-337c-661ee87994df@mentor.com>

Le 19/12/2016 ? 14:54, Vladimir Zapolskiy a ?crit :
> Functionally it looks good, I have two comments though.
> 1) you don't need to revert 151b8c5ba1eb, the commit is a proper fix
>     per se but incomplete, please add your change on top of it,
>
> 2) minimizing the lines of code by removing duplicates is always good,
>     so here a better and complete fix will be like the following one:
>
Hi,

thanks for the feedback and comments.
Patch submitted.

CJ

^ permalink raw reply

* [PATCH] ARM: dts: sun8i: add a delay after reset xr819 on Orange Pi Zero
From: Icenowy Zheng @ 2016-12-20  5:58 UTC (permalink / raw)
  To: linux-arm-kernel

XR819 seems to need a delay after its reset line to be deasserted,
otherwise it may not respond MMC commands correctly, and fail to
initialize.

Add a 200ms delay in the mmc-pwrseq.

Signed-off-by: Icenowy Zheng <icenowy@aosc.xyz>
---
 arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
index d18807f73060..b7ca916d871d 100644
--- a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
+++ b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
@@ -92,6 +92,7 @@
 	wifi_pwrseq: wifi_pwrseq {
 		compatible = "mmc-pwrseq-simple";
 		reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>;
+		post-power-on-delay-ms = <200>;
 	};
 };
 
-- 
2.11.0

^ permalink raw reply related

* [PATCH] arm64/dts/ls2080a-rdb: remove disable status of pca9547
From: Meng Yi @ 2016-12-20  6:03 UTC (permalink / raw)
  To: linux-arm-kernel

pca9547 won't probed since its status property is disabled.
while there are devices connected to it, we need remove status
property to let ds3232 and adt7461 probed correctly.

Signed-off-by: Meng Yi <meng.yi@nxp.com>
---
 arch/arm64/boot/dts/freescale/fsl-ls2080a-rdb.dts | 1 -
 1 file changed, 1 deletion(-)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls2080a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-ls2080a-rdb.dts
index 265e0a8..2ff46ca 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls2080a-rdb.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls2080a-rdb.dts
@@ -102,7 +102,6 @@
 		reg = <0x75>;
 		#address-cells = <1>;
 		#size-cells = <0>;
-		status = "disabled";
 		i2c at 1 {
 			#address-cells = <1>;
 			#size-cells = <0>;
-- 
2.1.0.27.g96db324

^ permalink raw reply related

* [PATCH] drm/mediatek: Support UYVY and YUYV format for overlay
From: YT Shen @ 2016-12-20  6:59 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1481692473-18755-1-git-send-email-bibby.hsieh@mediatek.com>

Hi Bibby,

On Wed, 2016-12-14 at 13:14 +0800, Bibby Hsieh wrote:
> MT8173 overlay can support UYVY and YUYV format,
> we add the format in DRM driver.
> 
> Signed-off-by: Bibby Hsieh <bibby.hsieh@mediatek.com>
> ---
>  drivers/gpu/drm/mediatek/mtk_disp_ovl.c  | 6 ++++++
>  drivers/gpu/drm/mediatek/mtk_drm_plane.c | 2 ++
>  2 files changed, 8 insertions(+)
> 
> diff --git a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
> index 019b7ca..0a340f3 100644
> --- a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
> +++ b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
> @@ -44,6 +44,8 @@
>  #define OVL_CON_CLRFMT_RGB888	(1 << 12)
>  #define OVL_CON_CLRFMT_RGBA8888	(2 << 12)
>  #define OVL_CON_CLRFMT_ARGB8888	(3 << 12)
> +#define OVL_CON_CLRFMT_UYVY	(4 << 12)
> +#define OVL_CON_CLRFMT_YUYV	(5 << 12)
>  #define	OVL_CON_AEN		BIT(8)
>  #define	OVL_CON_ALPHA		0xff
>  
> @@ -161,6 +163,10 @@ static unsigned int ovl_fmt_convert(unsigned int fmt)
>  	case DRM_FORMAT_XBGR8888:
>  	case DRM_FORMAT_ABGR8888:
>  		return OVL_CON_CLRFMT_RGBA8888 | OVL_CON_BYTE_SWAP;
> +	case DRM_FORMAT_YUYV:
> +		return OVL_CON_CLRFMT_YUYV;
> +	case DRM_FORMAT_UYVY:
> +		return OVL_CON_CLRFMT_UYVY;
>  	}
>  }
Your patch looks good, but I am not sure about some details.
AFAIK, there is a color matrix here to describe how to transform from
BT.601 / BT.709 / other color space to RGB color space.  You can use the
default value if you don't care how colors are represented.  Or you can
specify the matrix in this patch.

Regards,
yt.shen

>  
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_plane.c b/drivers/gpu/drm/mediatek/mtk_drm_plane.c
> index c461a23..b94c6ee 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_plane.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_plane.c
> @@ -28,6 +28,8 @@
>  	DRM_FORMAT_XRGB8888,
>  	DRM_FORMAT_ARGB8888,
>  	DRM_FORMAT_RGB565,
> +	DRM_FORMAT_YUYV,
> +	DRM_FORMAT_UYVY,
>  };
>  
>  static void mtk_plane_reset(struct drm_plane *plane)

^ permalink raw reply

* [PATCH v4 0/5] mfd: dt: Add bindings for the Aspeed MFDs
From: Andrew Jeffery @ 2016-12-20  7:15 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Lee,

Here's v4 of the Aspeed LPC MFD devicetree bindings series. v3 can be found at:

  https://lkml.org/lkml/2016/12/5/835

Changes since v3:

* Based on Arnd's argument[1], drop the addition of the mfd/syscon bindings
  directory as well as the the last patch in v3, which moved a number of
  existing bindings. Eventually the Aspeed display controller will have a
  device-specific driver so it doesn't belong there either.

* Add a compatible string for the AST2400 in the LPC Host Controller bindings
  as requested by Joel and slightly tweak the reg description for Rob.

[1] https://lkml.org/lkml/2016/12/13/202

Andrew Jeffery (5):
  mfd: dt: Fix "indicates" typo in mfd bindings document
  mfd: dt: ranges, #address-cells and #size-cells as optional properties
  mfd: dt: Add Aspeed Low Pin Count Controller bindings
  mfd: dt: Add bindings for the Aspeed LPC Host Controller (LHC)
  mfd: dt: Add bindings for the Aspeed SoC Display Controller (GFX)

 .../devicetree/bindings/mfd/aspeed-gfx.txt         |  17 +++
 .../devicetree/bindings/mfd/aspeed-lpc.txt         | 137 +++++++++++++++++++++
 Documentation/devicetree/bindings/mfd/mfd.txt      |  12 +-
 3 files changed, 165 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/mfd/aspeed-gfx.txt
 create mode 100644 Documentation/devicetree/bindings/mfd/aspeed-lpc.txt

-- 
2.9.3

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox