Dispose of virtual IRQ being created for MSI interrupts.
Signed-off-by: Bharat Kumar Gogada <bharatku@xilinx.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Kernel provides virtual IRQ number at teardown. Get hwirq number from
virtual IRQ and clear correct MSI set bit.
Signed-off-by: Bharat Kumar Gogada <bharatku@xilinx.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
and Firefly-reload), display support for the rk3288-evb, support for the
recently added firmware reboot-flag support and some housekeeping cleanups.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQEcBAABCAAGBQJX0WScAAoJEPOmecmc0R2BEycIAK7/5hV5kyeEA3vx1VaLoRH0
lFHMQyaucbqQCuAu6U6NBwyVGnirvd5HG+KRA34RncLfVT5Fnv81u43byKkaUI/I
8NH6l4FvcND76J1IIR6XZl8cGxaRCT1bkUgII4MFaMaQBxY19gbLCDuBVLVJEhK7
lUy7lG/6j/DvIwU0UevGdB/bdCPZ0WZ6n9InF4xIMJ6PJYI5/BctSpxfJr47hTjQ
a0z637dqXv08L7LRqVtXn+1tJZ6QJdHrtsEavGFOQEzl+n2rRFuBC63+v98h7WCc
1gnyfWbR+NMZOH13imBiOiK7Ap/F5Qm1uF5bfJhoJGbGazv5NcZqPlZ0CocrAXY=
=gktZ
-----END PGP SIGNATURE-----
Merge tag 'v4.9-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt
Pull "Rockchip dts32 changes for 4.9" from Heiko Stübner:
32bit Rockchip devicetree changes containing two new rk3288 boards (Fennec
and Firefly-reload), display support for the rk3288-evb, support for the
recently added firmware reboot-flag support and some housekeeping cleanups.
* tag 'v4.9-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
ARM: dts: rockchip: Add sensor-supplies on PopMetal-RK3288 board
ARM: dts: rockchip: fix L3G4200D i2c address on PopMetal-RK3288 board
ARM: dts: rockchip: enable usbotg for Popemtal-rk3288 board
ARM: dts: rockchip: add missing regulators for firefly reload board
ARM: dts: rockchip: remove excess sd properties from firefly reload
ARM: dts: rockchip: add syscon-reboot-mode DT node
soc: rockchip: add reboot-mode header
ARM: dts: rockchip: move rk3288 usbphy under the GRF node
ARM: dts: rockchip: add rk3288-firefly-reload
ARM: dts: rockchip: add dts for RK3288-Fennec boards
ARM: dts: rockchip: add the panel power supply for rk3288-evb board with rk808 pmu
ARM: dts: rockchip: add the panel power supply for rk3288-evb board with act8846 pmu
ARM: dts: rockchip: add eDP/panel display device nodes for rk3288-evb
The interrupt decode register is not being cleared if an invalid interrupt
arises. Clear the decode register in this case.
Signed-off-by: Bharat Kumar Gogada <bharatku@xilinx.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Commit f70ddc07b6 ("MIPS: c-r4k: Avoid small flush_icache_range SMP
calls") adds checks to force use of hit-type cache ops for small icache
flushes where they are globalised & index-type cache ops aren't, in
order to avoid the overhead of IPIs in those cases. However it
calculated the size of the region being flushed incorrectly, subtracting
the end address from the start address rather than the reverse. This
would have led to an overflow with size wrapping round to some large
value, and likely to the special case for avoiding IPIs not actually
being hit.
Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: James Hogan <james.hogan@imgtec.com>
Fixes: f70ddc07b6 ("MIPS: c-r4k: Avoid small flush_icache_range SMP calls")
Reviewed-by: James Hogan <james.hogan@imgtec.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Cc: Huacai Chen <chenhc@lemote.com>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/14211/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Business as usual on our side, with a mix of new boards and new IPs enabled
on boards:
- Support for the GPIO found on the AXP PMIC
- ESP8089 on the relevant boards
- More boards converted to the reference design and q8 designs
- New boards: Orange Pi PC Plus, Orange Pi 2, Orange Pi Plus 2E, Orange
Pi Lite, Olimex A33-Olinuxino, Empire Electronix M712, inet-d978_rev2,
Nano Pi Neo
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJX0G1eAAoJEBx+YmzsjxAglB8P/j3Z9WDnNVh5MFuvJpPvT5Sc
E4KiVmL5L5cHRAdJLS3sUTBCHzhv3iJZaHHmPVzRpDYwYL+XMieNpS7CknkD8Sct
h5LtPk4ukazsrx86TEeBQ1CCBkI2CqXVnD/v68FY8rbIKGPOk52lUrI3lhbuHT1w
XCSJj4SAMnHfmQWYE+eQpEYndWnMQCijdr3X2OuWl7WG+N+7d0h43QfA2GgR4Thv
jP/s43LBgMf+GnVLn8hMgI2XZCv/TK+9ZWiDrDDNRS1dwlDrkcKfS+gMOM0sMzON
tOs3OK4pLB37SQ4+7V3x8Vne7xWVmPXCr8gVYh1AZGLCpSGDNImNVDv9lvNiJiya
PxbAgGx5eEJ1J4oZ9httT0vp4IGmGew1ZeRIij35+bOECAvNJ09bjMFguaVv3Mv5
6vKXmbqW2j07TrneKZJMP5L9vheto1Z5AwWDAYDCmxHnkzXCyFNJ5oeo+lvg6EV5
YWme3WdmLZtcLDIuffa1mlZ5CrtkV+QPdv/SqE/LBhXTSWiPwTaQaqlr57/+/e4Y
fu2ECKBOP7Y3tanBHHJOMovX8rQ259TadmGOZWDh4bR/9CJ6J/OUWmYwvutBwVOc
n17g3erYtNQm6/buGpqFTRsT9/EL5zQESJt2x2/DZwOOUipBRkm23Jd0kz/q7juw
APAzF3rtbo20wld0ueMF
=3Q+E
-----END PGP SIGNATURE-----
Merge tag 'sunxi-dt-for-4.9' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into next/dt
Pull "Allwinner DT changes for 4.9" from Maxime Ripard:
Business as usual on our side, with a mix of new boards and new IPs enabled
on boards:
- Support for the GPIO found on the AXP PMIC
- ESP8089 on the relevant boards
- More boards converted to the reference design and q8 designs
- New boards: Orange Pi PC Plus, Orange Pi 2, Orange Pi Plus 2E, Orange
Pi Lite, Olimex A33-Olinuxino, Empire Electronix M712, inet-d978_rev2,
Nano Pi Neo
* tag 'sunxi-dt-for-4.9' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux: (31 commits)
devicetree: Add vendor prefix for FriendlyARM
ARM: dts: sun8i: Add dts file for the NanoPi NEO SBC
ARM: dts: sun8i-q8-common: Add support for SDIO wifi controllers
ARM: dts: sun8i: Add dts file for the Orange Pi Plus2E SBC
ARM: dts: sun8i: Orange Pi Plus dts is for the Plus and Plus 2
ARM: dts: sun8i: Add PWM controller node in H3
ARM: dts: sun8i: Add dts file for inet-d978_rev2 tablets
ARM: dts: sun9i: Add missing #interrupt-cells to R_PIO pinctrl device node
ARM: dts: sun8i: Rename reference-design-tablet touchscreen node
ARM: dts: sun5i: Add dts file for the Empire Electronix M712 tablet
ARM: dts: sun5i: Convert inet-98v-rev2 dts to use reference-design-tablet.dtsi
ARM: dts: sun4i: Disable ohci1 on ba10-tv-box
ARM: dts: sun8i: Add dt node for esp8089 wifi chip on polaroid-mid2809
ARM: dts: sun8i: Add dt node for esp8089 wifi chip on polaroid-mid2407
ARM: dts: sun8i: add NAND controller node for A23/A33
ARM: dts: sun6i: Add new dts file for tablets using the inet-q972 PCB
ARM: dts: sun6i: Add sun6i-reference-design-tablet.dtsi
ARM: dts: sun6i: colorfly-e708-q1: Remove unused mma8452_int_e708_q1 node
ARM: dts: sun9i: Switch to the AC100 RTC clock outputs for osc32k
ARM: dts: sun9i: cubieboard4: Add device node for AC100
...
* Removal of skeleton.dtsi from the common armv7-m dtsi together
with lpc18xx and efm32 platforms.
* Fix for unit address warnings from the dtc on lpc18xx/efm32.
That is made possible with skeleton.dtsi gone.
-----BEGIN PGP SIGNATURE-----
iQEwBAABCAAaBQJXzyBlExxtYW5hYmlhbkBnbWFpbC5jb20ACgkQXnNIfj7+P9rV
UwgAvfI2Lv75gqxfLhbIeKeY5Mxms8KGTmGJFX/xAIb9vUynAuVPhDnoie+bvDtA
9lvJCAwL2pyrb5cyeofjq1lMscX8Ng6mSyrUZ+nhzZNXgNzPK0Z169gcLhugnNW5
mk4TACKstfiCVQxlB1xa4JHa4/8r8EJ2ouB3Fwd6Zi1OJfC9bU9FFIgjOxfIRhWn
W8swy5c1sufbUHnQbZeVCweCN4P6tAQN+bxaKgKawmWaVpCz/6jF/dRsD0zj8UHb
J2nBSjo1Vac25ET9bz5K0jjNOK9BdOcvgbxD/EDDYTwQCbouRpnv+uQctVSyY98n
2GIiX1Bk1W02NmKvXXQ/6RRz7g==
=uht9
-----END PGP SIGNATURE-----
Merge tag 'lpc18xx_dts_for_4.9_part2' of https://github.com/manabian/linux-lpc into next/dt
Pull "Device Tree clean up for LPC18xx platform" from Joachim Eastwood:
* Removal of skeleton.dtsi from the common armv7-m dtsi together
with lpc18xx and efm32 platforms.
* Fix for unit address warnings from the dtc on lpc18xx/efm32.
That is made possible with skeleton.dtsi gone.
* tag 'lpc18xx_dts_for_4.9_part2' of https://github.com/manabian/linux-lpc:
ARM: dts: efm32: remove skeleton.dtsi include and fix unit address warnings
ARM: dts: lpc18xx: remove skeleton.dtsi include and fix unit address warnings
ARM: dts: armv7-m: remove skeleton.dtsi include
- update for Armada XP/38x allowing using direct access SPI
- various improvement for Armada 39x platforms
- add pinctrl information for NANd on Armada 38x
- fix the kirkwood based Openblock A6 external GPIO pins
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iEYEABECAAYFAlfMQ0gACgkQCwYYjhRyO9XZQgCfVtygCoGhhk2ou4huuBcWlutL
It0An1jM4iRF4RwgWtikxEV00Ovg4dJw
=LoDw
-----END PGP SIGNATURE-----
Merge tag 'mvebu-dt-4.9-1' of git://git.infradead.org/linux-mvebu into next/dt
Pull "mvebu dt for 4.9 (part 1)" from Gregory CLEMENT:
- update for Armada XP/38x allowing using direct access SPI
- various improvement for Armada 39x platforms
- add pinctrl information for NANd on Armada 38x
- fix the kirkwood based Openblock A6 external GPIO pins
* tag 'mvebu-dt-4.9-1' of git://git.infradead.org/linux-mvebu:
ARM: dts: mvebu: fix reference to a390 spi controller
ARM: dts: armada-38x: Add NAND pinctrl information
ARM: dts: kirkwood: Fix Openblock A6 external GPIO pins
ARM: dts: mvebu: armada-395-gp: add support for the Armada 395 GP Board
ARM: dts: mvebu: armada-390-db: add support for the Armada 390 DB board
ARM: dts: mvebu: armada-398-db: enable supported usb interfaces
ARM: dts: mvebu: armada-398: update the dtsi about missing interfaces
ARM: dts: mvebu: armada-395: add support for the Armada 395 SoC family
ARM: dts: mvebu: armada-39x: enable rtc for all Armada-39x SoCs
ARM: dts: mvebu: armada-39x: add missing nodes describing GPIO's
ARM: dts: mvebu: armada-39x: enable watchdog for all Armada-39x SoCs
ARM: dts: mvebu: armada-39x: enable the thermal sensor in Armada-39x SoCs
ARM: dts: mvebu: armada-39x: enable PMU, CA9 SoC Controller and Coherency fabric
ARM: dts: mvebu: armada-39x: update the SDHCI node on Armada 39x
ARM: dts: mvebu: armada-390: add missing compatibility string and bracket
ARM: dts: mvebu: a385-db-ap: add default partition description for NAND
ARM: dts: mvebu: a385-db-ap: enable USB (orion-ehci) port
ARM: dts: mvebu: armada-370-xp: Add MBus mappings for all SPI devices
ARM: dts: mvebu: A37x/XP/38x/39x: Move SPI controller nodes into 'soc' node
ARM: dts: mvebu: Add SPI1 pinctrl defines for Armada XP
casting between dma_addr_t and a pointer is generally tricky,
as they might not be the same size and almost never point into
the same address space. With 32-bit ARM systems and LPAE, we
get this warning for the vme_fake driver that stores a pointer
in a dma_addr_t variable:
drivers/vme/bridges/vme_fake.c: In function 'fake_slave_set':
drivers/vme/bridges/vme_fake.c:204:29: error: assignment makes pointer from integer without a cast [-Werror=int-conversion]
To make this clearer while fixing the warning, I'm adding
a set of helper functions for the type conversion.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Martyn Welch <martyn@welchs.me.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The code is a bit obscure.
Simplify it by using a single routine to flush the tpk_buffer and
emit the buffer prefixed with "[U] ".
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
'ub' is malloced in tipc_udp_enable() and should be freed before
leaving from the error handling cases, otherwise it will cause
memory leak.
Fixes: ba5aa84a2d ("tipc: split UDP nl address parsing")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
As noted in commit 3ebee5a2e1 ("arm64: dts: kill skeleton.dtsi"),
there are a number of problems with skeleton.dtsi, and it would be
prefereable to remove it entirely. As there are a large number of
existing users, fixing these up will take a while.
This patch adds a note to arm's skeleton.dtsi noting that this is the
case, to make this more obvious and hopefully minimize new uptake of
skeleton.dtsi in the mean time.
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Rob Herring <robh@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Olof Johansson <olof@lixom.net>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
With LPAE config we don't have omap3 or omap4 selected for
omap5 variants.
Signed-off-by: Tony Lindgren <tony@atomide.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
A discrepancy between cpu_online_mask and cpuset's effective_cpus
mask is inevitable during hotplug since cpuset defers updating of
effective_cpus mask using a workqueue, during which time nothing
prevents the system from more hotplug operations. For that reason
guarantee_online_cpus() walks up the cpuset hierarchy until it finds
an intersection under the assumption that top cpuset's effective_cpus
mask intersects with cpu_online_mask even with such a race occurring.
However a sequence of CPU hotplugs can open a time window, during which
none of the effective CPUs in the top cpuset intersect with
cpu_online_mask.
For example when there are 4 possible CPUs 0-3 and only CPU0 is online:
======================== ===========================
cpu_online_mask top_cpuset.effective_cpus
======================== ===========================
echo 1 > cpu2/online.
CPU hotplug notifier woke up hotplug work but not yet scheduled.
[0,2] [0]
echo 0 > cpu0/online.
The workqueue is still runnable.
[2] [0]
======================== ===========================
Now there is no intersection between cpu_online_mask and
top_cpuset.effective_cpus. Thus invoking sys_sched_setaffinity() at
this moment can cause following:
Unable to handle kernel NULL pointer dereference at virtual address 000000d0
------------[ cut here ]------------
Kernel BUG at ffffffc0001389b0 [verbose debug info unavailable]
Internal error: Oops - BUG: 96000005 [#1] PREEMPT SMP
Modules linked in:
CPU: 2 PID: 1420 Comm: taskset Tainted: G W 4.4.8+ #98
task: ffffffc06a5c4880 ti: ffffffc06e124000 task.ti: ffffffc06e124000
PC is at guarantee_online_cpus+0x2c/0x58
LR is at cpuset_cpus_allowed+0x4c/0x6c
<snip>
Process taskset (pid: 1420, stack limit = 0xffffffc06e124020)
Call trace:
[<ffffffc0001389b0>] guarantee_online_cpus+0x2c/0x58
[<ffffffc00013b208>] cpuset_cpus_allowed+0x4c/0x6c
[<ffffffc0000d61f0>] sched_setaffinity+0xc0/0x1ac
[<ffffffc0000d6374>] SyS_sched_setaffinity+0x98/0xac
[<ffffffc000085cb0>] el0_svc_naked+0x24/0x28
The top cpuset's effective_cpus are guaranteed to be identical to
cpu_online_mask eventually. Hence fall back to cpu_online_mask when
there is no intersection between top cpuset's effective_cpus and
cpu_online_mask.
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
Acked-by: Li Zefan <lizefan@huawei.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: cgroups@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: <stable@vger.kernel.org> # 3.17+
Signed-off-by: Tejun Heo <tj@kernel.org>
If dma_pfn_offset is not inherited correctly from the host controller,
it might result in sub-optimal configuration as bounce
buffer limit might be set to less than optimal level.
Consider the mass storage device case.
USB storage driver creates a scsi host for the mass storage interface in
drivers/usb/storage/usb.c
The scsi host parent device is nothing but the the USB interface device.
Now, __scsi_init_queue() calls scsi_calculate_bounce_limit() to find out
and set the block layer bounce limit.
scsi_calculate_bounce_limit() uses dma_max_pfn(host_dev) to get the
bounce_limit. host_dev is nothing but the device representing the
mass storage interface.
If that device doesn't have the right dma_pfn_offset, then dma_max_pfn()
is messed up and the bounce buffer limit is wrong.
e.g. On Keystone 2 systems, dma_max_pfn() is 0x87FFFF and dma_mask_pfn
is 0xFFFFF. Consider a mass storage use case: Without this patch,
usb scsi host device (usb-storage) will get a dma_pfn_offset of 0 resulting
in a dma_max_pfn() of 0xFFFFF within the scsi layer
(scsi_calculate_bounce_limit()).
This will result in bounce buffers being unnecessarily used.
Hint: On 32-bit ARM platforms dma_max_pfn() = dma_mask_pfn + dma_pfn_offset
Signed-off-by: Roger Quadros <rogerq@ti.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
When system enters into kdump kernel because of kernel panic, it won't
shutdown devices. On-flight DMA will continue transferring data until
device driver initializes. All devices are supposed to reset during
driver initialization. And this property is used to fix the kdump
failure in system with intel iommu. Other systems with hardware iommu
should be similar. Please check commit 091d42e ("iommu/vt-d: Copy
translation tables from old kernel") and those commits around.
But bnx2 driver doesn't reset device during driver initialization. The
device resetting is deferred to net device up stage. This will cause
hardware iommu handling failure on bnx2 device. And its resetting relies
on firmware. So in this patch move the firmware requesting code to earlier
bnx2_init_one(), then next call bnx2_reset_chip to reset device.
Signed-off-by: Baoquan He <bhe@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Fixes the following sparse warning:
drivers/usb/host/ohci-at91.c:141:15: warning:
symbol 'at91_dt_syscon_sfr' was not declared. Should it be static?
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Fix to return error code -ENOMEM from the usb_create_shared_hcd()
error handling case instead of 0, as done elsewhere in this function.
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
For structure types defined in the same file or local header files, find
top-level static structure declarations that have the following
properties:
1. Never reassigned.
2. Address never taken
3. Not passed to a top-level macro call
4. No pointer or array-typed field passed to a function or stored in a
variable.
Declare structures having all of these properties as const.
Done using Coccinelle.
Based on a suggestion by Joe Perches <joe@perches.com>.
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
A dev_err message spans two lines and the literal string is missing
a white space between words. Add the white space and reformat the
message to not span multiple lines.
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Further cleanup making the debug messages more precise, useful
and removing mere trace points.
Signed-off-by: Oliver Neukum <oneukum@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Actually make it retutn useful information.
Signed-off-by: Oliver Neukum <oneukum@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
When built with MSI support, the legacy domain reference was being
overwritten with MSI.
Create two separate domains for MSI and legacy interrupts.
Signed-off-by: Bharat Kumar Gogada <bharatku@xilinx.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
If /sbin/bridge-stp is available on the system, bridge tries to execute
it instead of the kernel implementation when starting/stopping STP.
If anything goes wrong with /sbin/bridge-stp, bridge silently falls back
to kernel STP, making hard to debug userspace STP.
This patch adds a br_stp_call_user helper to start/stop userspace STP
and debug errors from the program: abnormal exit status is stored in the
lower byte and normal exit status is stored in higher byte.
Below is a simple example on a kernel with dynamic debug enabled:
# ln -s /bin/false /sbin/bridge-stp
# brctl stp br0 on
br0: failed to start userspace STP (256)
# dmesg
br0: /sbin/bridge-stp exited with code 1
br0: failed to start userspace STP (256)
br0: using kernel STP
Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
aDate is always the empty string, so entirely pointless. The aRevision
formatting might as well be done as part of the pr_debug() call - that
also avoids it altogether if pr_debug is compiled out.
Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Fix to return a negative error code from the usb_phy_generic_register()
error handling case instead of 0, as done elsewhere in this function.
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Use the new phy-da8xx-usb driver to take the place of the mach code that
pokes CFGCHIP2 in the da8xx musb glue driver. This unbreaks the driver.
Signed-off-by: David Lechner <david@lechnology.com>
Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Simplify things a bit by using devm functions where possible.
Signed-off-by: David Lechner <david@lechnology.com>
[b-liu@ti.com: fixed merge conflict]
Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This allows run-time dr_mode switching support via the "mode" musb
sysfs attribute.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
We can now just use PM runtime autoidle support as musb core
keeps things enabled when the devctl session bit is set. And
there's no need for dsps_musb_try_idle() so let's just remove
it.
Note that as cppi41 dma is clocked by musb, this only makes
PM work for dsps glue layer if CONFIG_MUSB_PIO_ONLY=y and
cppi41.ko is unloaded. This will get fixed when cppi41.c has
PM runtime implemented.
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
With musb core now blocking PM based on the devctl status
bit, we can remove related quirks from the 2430 glue layer
and simplify PM runtime further.
Lets's also use musb->controller instead of dev to make it
clear we make the PM runtime calls for the core, not the
glue layer.
And we can now also lower the autoidle timeout.
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
We want to be polling the state when nothing is connected.
Let's change the polling logic in preparation for PM runtime
support.
Signed-off-by: Tony Lindgren <tony@atomide.com>
[b-liu@ti.com: undo unnecessary line leading whitespace change]
Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
We want to keep musb enabled always when the session bit is
set. This simplifies the PM runtime and allows making it more
generic across the various glue layers.
So far the only exception to just following the session bit is
host mode disconnect where the session bit stays set.
In that case, just allow PM and let the PM runtime autoidle
timeout deal with it.
Signed-off-by: Tony Lindgren <tony@atomide.com>
[b-liu@ti.com: changed using dev_dbg() to musb_dbg()]
Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Detailed description for this pull request:
1. Support the extcon property and add the synchronization APIs.
- This feature supports the extcon property for external connector
because each external connector might have the property according to
the H/W design.
- The property name should keep the following style.
: EXTCON_PROP_USB_[property_name]
: EXTCON_PROP_CHG_[property_name]
: EXTCON_PROP_JACK_[property_name]
: EXTCON_PROP_DISP_[property_name]
- Add the new extcon APIs to support the extcon property.
: extcon_set_property()
: extcon_get_property()
: extcon_set_property_capability()
: extcon_get_property_capability()
- Add the new synchronization extcon APIs.
: This feature adds the synchronization extcon APIs to support the noti
for both state and property. When extcon_*_sync() functions is called,
the extcon informs the information from extcon provider to extcon client.
The extcon driver may need to change the both state and multiple properties
at the same time. After setting the data of a external connector,
the extcon send the notification to client driver with the extcon_*_sync().
: extcon_sync()
: extcon_set_state_sync()
: extcon_set_property_sync()
- Change the name of existing APIs.
: extcon_set_cable_state_() -> extcon_set_cable()
: extcon_get_cable_state_() -> extcon_get_cable()
2. Add the extcon type to group the connector into five category.
- EXTCON_TYPE_USB : USB connector
- EXTCON_TYPE_CHG : Charger connector
- EXTCON_TYPE_JACK : Jack connector
- EXTCON_TYPE_DISP : Display connector
- EXTCON_TYPE_MISC : Miscellaneous connector
3. Add the new property for external connector.
- EXTCON_PROP_USB_VBUS
- EXTCON_PROP_USB_TYPEC_POLARITY
- EXTCON_PROP_USB_SS (SuperSpeed)
- EXTCON_PROP_DISP_HPD (Hot Plug Detect)
4. Add the new type of external connector.
- EXTCON_DISP_DP : Display Port
- EXTCON_DISP_HMD : Head Mounted Device
- EXTCON_CHG_WPT : Wireless Power Transfer device
5. Add the new extcon driver.
- Qualcomm SPMI PMIC USB id detection driver detects whether
EXTCON_USB_HOST is attached or detached. (extcon-qcom-spmi-mis.c)
6. Remove the usage of extcon_update_state() and old extcon_set_state()
- Both extcon_update_state() and extcon_set_state() should change the state
of all external connectors with bit masking handling. It may occur the
problem. Instead, extcon provides the extcon_set/get_state() functions.
7. Fix the minor issues on extcon drivers.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJX15NdAAoJEJzN3yze689THBUP/jnchjajptYuKY/Y/TkDfdHF
ffEQX/V4lJ1rZfQe4TOWf/f4Pa/+AssFXlOH08in9mAqphsYVZb6d05yVxZgK2cA
3C0JH2SigpcnpIbxDAmz+IuJCzA9BIyhj3+qqzo72vRE8lS+CBQk0jsuQgbNVRG+
T9Dg7GvqcWOpvlGXFhMszznYMQIXfnYSuY4JbT5YjEN6k7qC+fYPwyXN7iJfZ70r
B9mQwjynimE82VV7xfeYwUhoXCSu+MS8YlfxayWP7p8//kNyID17LjCZttH/deF4
bMr+PfUmn3Uv8PoOQL+hONRruVNbzp8fPaBERk1G/7CS9Gtf1jZUHYyG4Hn7cmpt
i/WAvFc2aDJyZEzVRborbnZ4KAwas8ftfNy13fIzsXKwPg6FKoIGoj8+4cxO61fc
rP+GDWpCOheCMLI9oRuXM1Ub6f8z5uZl3xDgWuGb2LCp7uquIC483AaZAKqpPNll
Xo4oLFTWecyA0lt1FsHC/qTbSW104VtYeQv644zsDTMyVvarQ4daf9lce9Qw5dYc
jM2EN8CYHw38jpgFquNXqRArNoTbdsLWQ9shv6MlQNguX8hao6lZZgFtWYq9j3dj
I1YjkyyYyr5VwF+xUjTQFrLWXPZ77/7LRwgeifcIPI3MC+tYFhhBojIT709ri8L/
QwgUF2ukSoPxPVT/jUVv
=LF4N
-----END PGP SIGNATURE-----
Merge tag 'extcon-next-for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon into usb-testing
Chanwoo writes:
Update extcon for 4.9
Detailed description for this pull request:
1. Support the extcon property and add the synchronization APIs.
- This feature supports the extcon property for external connector
because each external connector might have the property according to
the H/W design.
- The property name should keep the following style.
: EXTCON_PROP_USB_[property_name]
: EXTCON_PROP_CHG_[property_name]
: EXTCON_PROP_JACK_[property_name]
: EXTCON_PROP_DISP_[property_name]
- Add the new extcon APIs to support the extcon property.
: extcon_set_property()
: extcon_get_property()
: extcon_set_property_capability()
: extcon_get_property_capability()
- Add the new synchronization extcon APIs.
: This feature adds the synchronization extcon APIs to support the noti
for both state and property. When extcon_*_sync() functions is called,
the extcon informs the information from extcon provider to extcon client.
The extcon driver may need to change the both state and multiple properties
at the same time. After setting the data of a external connector,
the extcon send the notification to client driver with the extcon_*_sync().
: extcon_sync()
: extcon_set_state_sync()
: extcon_set_property_sync()
- Change the name of existing APIs.
: extcon_set_cable_state_() -> extcon_set_cable()
: extcon_get_cable_state_() -> extcon_get_cable()
2. Add the extcon type to group the connector into five category.
- EXTCON_TYPE_USB : USB connector
- EXTCON_TYPE_CHG : Charger connector
- EXTCON_TYPE_JACK : Jack connector
- EXTCON_TYPE_DISP : Display connector
- EXTCON_TYPE_MISC : Miscellaneous connector
3. Add the new property for external connector.
- EXTCON_PROP_USB_VBUS
- EXTCON_PROP_USB_TYPEC_POLARITY
- EXTCON_PROP_USB_SS (SuperSpeed)
- EXTCON_PROP_DISP_HPD (Hot Plug Detect)
4. Add the new type of external connector.
- EXTCON_DISP_DP : Display Port
- EXTCON_DISP_HMD : Head Mounted Device
- EXTCON_CHG_WPT : Wireless Power Transfer device
5. Add the new extcon driver.
- Qualcomm SPMI PMIC USB id detection driver detects whether
EXTCON_USB_HOST is attached or detached. (extcon-qcom-spmi-mis.c)
6. Remove the usage of extcon_update_state() and old extcon_set_state()
- Both extcon_update_state() and extcon_set_state() should change the state
of all external connectors with bit masking handling. It may occur the
problem. Instead, extcon provides the extcon_set/get_state() functions.
7. Fix the minor issues on extcon drivers.
Pablo Neira Ayuso says:
====================
Netfilter fixes for net
The following patchset contains Netfilter fixes for your net tree,
they are:
1) Endianess fix for the new nf_tables netlink trace infrastructure,
NFTA_TRACE_POLICY endianess was not correct, patch from Liping Zhang.
2) Fix broken re-route after userspace queueing in nf_tables route
chain. This patch is large but it is simple since it is just getting
this code in sync with iptable_mangle. Also from Liping.
3) NAT mangling via ctnetlink lies to userspace when nf_nat_setup_info()
fails to setup the NAT conntrack extension. This problem has been
there since the beginning, but it can now show up after rhashtable
conversion.
4) Fix possible NULL pointer dereference due to failures in allocating
the synproxy and seqadj conntrack extensions, from Gao feng.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
The current mask enables and allows only one MSI interrupt on each MSI
line. Enable all MSI interrupts, which will also support Endpoints with
multi-MSI support.
Signed-off-by: Bharat Kumar Gogada <bharatku@xilinx.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
aic5_irq_domain_xlate() and aic_irq_domain_xlate() take the generic chip
lock without disabling interrupts, which can lead to a deadlock if an
interrupt occurs while the lock is held in one of these functions.
Replace irq_gc_{lock,unlock}() calls by
irq_gc_{lock_irqsave,unlock_irqrestore}() ones to prevent this bug from
happening.
Fixes: b1479ebb77 ("irqchip: atmel-aic: Add atmel AIC/AIC5 drivers")
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
Cc: stable@vger.kernel.org
Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Link: http://lkml.kernel.org/r/1473775109-4192-2-git-send-email-boris.brezillon@free-electrons.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Some irqchip drivers need to take the generic chip lock outside of the
irq context.
Provide the irq_gc_{lock_irqsave,unlock_irqrestore}() helpers to allow
one to disable irqs while entering a critical section protected by
gc->lock.
Note that we do not provide optimized version of these helpers for !SMP,
because they are not called from the hot-path.
[ tglx: Added a comment when these helpers should be [not] used ]
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
Cc: stable@vger.kernel.org
Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Link: http://lkml.kernel.org/r/1473775109-4192-1-git-send-email-boris.brezillon@free-electrons.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
If the paravirt machine is compiles without CONFIG_SMP, the following
linker error occurs
arch/mips/kernel/head.o: In function `kernel_entry':
(.ref.text+0x10): undefined reference to `smp_bootstrap'
due to the kernel entry macro always including SMP startup code.
Wrap this code in CONFIG_SMP to fix the error.
Signed-off-by: Matt Redfearn <matt.redfearn@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Cc: stable@vger.kernel.org # 3.16+
Patchwork: https://patchwork.linux-mips.org/patch/14212/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
If we being polled with a timeout of zero, a nonblocking busy query,
we don't need to install any fence callbacks as we will not be waiting.
As we only install the callback once, the overhead comes from the atomic
bit test that also causes serialisation between threads.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Gustavo Padovan <gustavo@padovan.org>
Cc: linux-media@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linaro-mm-sig@lists.linaro.org
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
Link: http://patchwork.freedesktop.org/patch/msgid/20160829181613.30722-1-chris@chris-wilson.co.uk
- Update elm phandle for am335x
- Fix overo NAND gpmc ranges, this has always been broken so it can
wait for the merge window
- Fix NAND and use NAND ready pin for logicpd gpmc, this can wait too
as it's been using the older configration since the dts got added
- A series of dtc warning fixes for unit names
- Keep dcdc3, 5 and 6 enabled during suspend on am347x boards
- Disable DDR regulator during rtc-only/poweroff mode for am437x boards
- Remove redundant regulator compatibles for am437x boards
- Increas QSPI max frequency for dra7 boards
- Enable QSPI for am57xx-idk-common
- Enable am335x-wega audio support
- Workaround for i845 for dra7
- Update binding for logicpd boards
- Add gpio-decoder nodes for am335x-icev2 board
- Add linux,pci-domain property for dra7
- Fix dra7 clock data gmac_gmii_ref_clk_div and related clock tree
entries, these can wait for merge window as Ethernet works on dra7
- A series of changes to drop skeleton.dtsi because of dtc warnings
-----BEGIN PGP SIGNATURE-----
iQIuBAABCAAYBQJXyErxERx0b255QGF0b21pZGUuY29tAAoJEBvUPslcq6VzEU0Q
ALfYnZ2/cNZ8ZkQ0jDLSxAOgb6SrXM5L6iUIYCyVuO6JP+lU88Zn0iQlB1wcD+e8
Gx87pnexDmPHznwrwWDyXqP6U89vJM9eBdUHoGIt8fr0On7DGQXAN1yrHN+N2kxa
y7DDePdu1InQM0oXeVqrKdSDNwnCMJpsdHOjmlB1bH83arrMOsG1bZZG3b5LgSTT
zJss1l3ipw2YJhkGheHCai6bClrko9z8OcbmSF4qogMDs19+QiC9AZ2lIwAF8czG
ll+/0Mwb9v0K4R/u+KZ9wC8tjz+Skitt0ffDSBpmP7ZBVJRRr5s3PxYDH6vSs+tM
zVNH2jy1SvnSpxJ3lpIis1WzMi2hr9X9iM3qTzRX5JE+wBGuas1CDVy5duQXtb4d
QRZWeHdQAX+x5MIRuVgYks6uDPHd6J6uXTlLNjASw5MRDSAGqnYv65BxYc+v5wyW
v0kj+yQk9ewiwIL3z0T4mJg04mO/hFh+G/B868Un/uafuxvoxEGH1TaSEz3j1Ow3
o1OGkxVWJj4N/tc7EP1EIqjFid6wAeu1eJdFkqv3zJjphOfKhToFg2T/5bUjbrFD
mlRyx3aOBxwbrkTUcSC5Qxy/q9DFT7kYm4RESk03zID2QTJmcTpwqNaYX6/jmVFT
xK7mWB4kyTkl/wC+/XJgLztsm79cDY0cWLDQd0zskyqU
=k+4W
-----END PGP SIGNATURE-----
Merge tag 'omap-for-v4.9/dt-pt1-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt
Merge "DTS related changes for omaps for v4.9 merge window" from Tony Lindgren:
- Update elm phandle for am335x
- Fix overo NAND gpmc ranges, this has always been broken so it can
wait for the merge window
- Fix NAND and use NAND ready pin for logicpd gpmc, this can wait too
as it's been using the older configration since the dts got added
- A series of dtc warning fixes for unit names
- Keep dcdc3, 5 and 6 enabled during suspend on am347x boards
- Disable DDR regulator during rtc-only/poweroff mode for am437x boards
- Remove redundant regulator compatibles for am437x boards
- Increas QSPI max frequency for dra7 boards
- Enable QSPI for am57xx-idk-common
- Enable am335x-wega audio support
- Workaround for i845 for dra7
- Update binding for logicpd boards
- Add gpio-decoder nodes for am335x-icev2 board
- Add linux,pci-domain property for dra7
- Fix dra7 clock data gmac_gmii_ref_clk_div and related clock tree
entries, these can wait for merge window as Ethernet works on dra7
- A series of changes to drop skeleton.dtsi because of dtc warnings
* tag 'omap-for-v4.9/dt-pt1-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (54 commits)
ARM: dts: dra7: Add missing unit name to memory nodes
ARM: dts: dra62x: Add missing unit name to memory nodes
ARM: dts: dm8168: Add missing unit name to memory nodes
ARM: dts: dm8148: Add missing unit name to memory nodes
ARM: dts: am572x: Add missing unit name to memory nodes
ARM: dts: am4372: Add missing unit name to memory nodes
ARM: dts: am3517: Add missing unit name to memory nodes
ARM: dts: am335x: Add missing unit name to memory nodes
ARM: dts: omap5: Add missing unit name to memory nodes
ARM: dts: omap4: Add missing unit name to memory nodes
ARM: dts: omap3: Add missing unit name to memory nodes
ARM: dts: omap2: Add missing unit name to memory nodes
ARM: dts: am4372: Remove skeleton.dtsi usage
ARM: dts: dra7: Remove skeleton.dtsi usage
ARM: dts: dm816x: Remove skeleton.dtsi usage
ARM: dts: dm814x: Remove skeleton.dtsi usage
ARM: dts: am33xx: Remove skeleton.dtsi usage
ARM: dts: omap5: Remove skeleton.dtsi usage
ARM: dts: omap4: Remove skeleton.dtsi usage
ARM: dts: omap3: Remove skeleton.dtsi usage
...
This driver now uses regmap APIs, so it needs to select REGMAP_I2C.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Currently the label says "Core" but lists the thread numbers. This
ends up looking like this:
# cat /sys/class/hwmon/hwmon0/temp[1-4]_label
Core 0-7
Core 8-15
Core 16-23
Core 24-31
This is misleading as it looks like it's cores 0-7 when it's actually
threads 0-7.
This changes the print to just give the core number, so the output now
looks like this:
# cat /sys/class/hwmon/hwmon0/temp[1-4]_label
Core 0
Core 8
Core 16
Core 24
Signed-off-by: Michael Neuling <mikey@neuling.org>
Acked-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>