Ensure that we hold a reference to the IOMMU driver module while calling
the '->of_xlate()' callback during early device probing.
Signed-off-by: Will Deacon <[email protected]>
Bug: 140290589
Link: https://lore.kernel.org/lkml/[email protected]/
Signed-off-by: Will Deacon <[email protected]>
Change-Id: Ica9ef2d5ed172c2451c0a19538dc28852c2270d5
To avoid accidental removal of an active IOMMU driver module, take a
reference to the driver module in 'iommu_probe_device()' immediately
prior to invoking the '->add_device()' callback and hold it until the
after the device has been removed by '->remove_device()'.
Suggested-by: Joerg Roedel <[email protected]>
Signed-off-by: Will Deacon <[email protected]>
Bug: 140290589
Link: https://lore.kernel.org/lkml/[email protected]/
Signed-off-by: Will Deacon <[email protected]>
Change-Id: I8f6a8aad8c41faa51df9c3a440c8b80c74e3ce8a
Building drivers for ATS-aware IOMMUs as modules requires access to
pci_ats_disabled(). Export it as a GPL symbol to get things working.
Acked-by: Bjorn Helgaas <[email protected]>
Signed-off-by: Will Deacon <[email protected]>
Bug: 140290589
Link: https://lore.kernel.org/lkml/[email protected]/
Signed-off-by: Will Deacon <[email protected]>
Change-Id: Ia5457fd6c4593565799b97f40c0def3558a97696
To avoid having to export 'pci_request_acs()' to modular IOMMU drivers,
move the call into the 'of_dma_configure()' path in a similar manner to
the way in which ACS is configured when probing via ACPI/IORT.
Signed-off-by: Will Deacon <[email protected]>
Bug: 140290589
Link: https://lore.kernel.org/lkml/[email protected]/
Signed-off-by: Will Deacon <[email protected]>
Change-Id: I3c689845ca493fbe037a2def2050a089036fb7d3
Commit 8e12257dead7 ("of: property: Add device link support for iommus,
mboxes and io-channels") added device link support for IOMMU linkages
described using the "iommus" property. For PCI devices, this property
is not present and instead the "iommu-map" property is used on the host
bridge node to map the endpoint RequesterIDs to their corresponding
IOMMU instance.
Add support for "iommu-map" to the device link supplier bindings so that
probing of PCI devices can be deferred until after the IOMMU is
available.
Cc: Rob Herring <[email protected]>
Cc: Robin Murphy <[email protected]>
Signed-off-by: Will Deacon <[email protected]>
Acked-by: Saravana Kannan <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
(cherry-picked from commit e149573b2f84d0517648dafc0db625afa681ed54
https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git driver-core-next)
Signed-off-by: Will Deacon <[email protected]>
Change-Id: Ife0cf1ed0256af47ed0cae7156f3184de355c42c
That data structure was used for constructing the commands
before executing them, but it was never really useful. Using
the structure just complicated the driver. The commands are
64-bit wide, so it is enough to simply fill a u64 variable.
No data structures needed.
This simplifies the driver considerable and makes it much
easier to for example add support for big endian systems
later on.
Change-Id: I3533a2c24c3a91ea51e2ebdefe6bc2351223ca0b
Signed-off-by: Heikki Krogerus <[email protected]>
Tested-by: Ajay Gupta <[email protected]>
Reviewed-by: Guenter Roeck <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Git-commit: 470ce43a1a810117f09aa4bcad6ca2be6b29c8d1
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
Signed-off-by: Jack Pham <[email protected]>
Replacing the old "cmd" and "sync" callbacks with an
implementation of struct ucsi_operations. The interrupt
handler will from now on read the CCI (Command Status and
Connector Change Indication) register, and call
ucsi_connector_change() function and/or complete pending
command completions based on it.
Change-Id: I9dfdc70b10544d6e65a0d289491be7cd9232e4af
Signed-off-by: Heikki Krogerus <[email protected]>
Tested-by: Ajay Gupta <[email protected]>
Reviewed-by: Guenter Roeck <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Git-commit: e32fd989ac1c45f993fbe89ad0a89aa9ea6993d2
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
Signed-off-by: Jack Pham <[email protected]>
Replacing the old "cmd" and "sync" callbacks with an
implementation of struct ucsi_operations. The ACPI
notification (interrupt) handler will from now on read the
CCI (Command Status and Connector Change Indication)
register, and call ucsi_connector_change() function and/or
complete pending command completions based on it.
Change-Id: Ia7c8e9e87f23ce6a70a657bf0e053345caf543cc
Signed-off-by: Heikki Krogerus <[email protected]>
Reviewed-by: Guenter Roeck <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Git-commit: f56de278e8ec963637995944156527162dcf3021
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
Signed-off-by: Jack Pham <[email protected]>
Adding more simplified API for interface registration and
read and write operations.
The registration is split into separate creation and
registration phases. That allows the drivers to properly
initialize the interface before registering it if necessary.
The read and write operations are supplied in a completely
separate struct ucsi_operations that is passed to the
ucsi_register() function during registration. The new read
and write operations will work more traditionally so that
the read callback function reads a requested amount of data
from an offset, and the write callback functions write the
given data to the offset. The drivers will have to support
both non-blocking writing and blocking writing. In blocking
writing the driver itself is responsible of waiting for the
completion event.
The new API makes it possible for the drivers to perform
tasks also independently of the core ucsi.c, and that should
allow for example quirks to be handled completely in the
drivers without the need to touch ucsi.c.
The old API is kept until all drivers have been converted to
the new API.
Change-Id: Ica25b44b228a96adbc2bd397d74978db6074c82e
Signed-off-by: Heikki Krogerus <[email protected]>
Tested-by: Ajay Gupta <[email protected]>
Reviewed-by: Guenter Roeck <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Git-commit: bdc62f2bae8fb0e8e99574de5232f0a3c54a27df
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
Signed-off-by: Jack Pham <[email protected]>
This change updates bits for testing on emulation platform.
Also, the change fixes spss_utils probe dependency on subsys-pil-tz.
Change-Id: I6924f73b3b69d3d4d57c989a1f8fd2217a2553ef
Signed-off-by: Konstantin Dorfman <[email protected]>
Add new macro SNDRV_AUDIO_QGKI and userspace can
check if AUDIO_QGKI is enabled or not.
Change-Id: I8c0a8c350c41a5feb616a7ee9895d88f182c91dc
Signed-off-by: Meng Wang <[email protected]>
Drivers may need to use the ASoC core function to
find out whether a particular component is already
registered with ALSA core or not.
Export the function so that drivers can use it outside
of the file.
Change-Id: I13e4a053de085974b0b53c392a9453e46f1aa66d
Signed-off-by: Banajit Goswami <[email protected]>
Signed-off-by: Meng Wang <[email protected]>
Pull cramfs fix from Al Viro:
"Regression fix, fallen through the cracks"
* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
cramfs: fix usage on non-MTD device
When both CONFIG_CRAMFS_MTD and CONFIG_CRAMFS_BLOCKDEV are enabled, if
we fail to mount on MTD, we don't try on block device.
Note: this relies upon cramfs_mtd_fill_super() leaving no side
effects on fc state in case of failure; in general, failing
get_tree_...() does *not* mean "fine to try again"; e.g. parsed
options might've been consumed by fill_super callback and freed
on failure.
Fixes: 74f78fc5ef ("vfs: Convert cramfs to use the new mount API")
Signed-off-by: Maxime Bizon <[email protected]>
Signed-off-by: Nicolas Pitre <[email protected]>
Signed-off-by: Al Viro <[email protected]>
Minor bugfixes all over the place.
Signed-off-by: Michael S. Tsirkin <[email protected]>
-----BEGIN PGP SIGNATURE-----
iQFDBAABCAAtFiEEXQn9CHHI+FuUyooNKB8NuNKNVGkFAl3U6E4PHG1zdEByZWRo
YXQuY29tAAoJECgfDbjSjVRpi/oIAJwjsmGhheWTRa+vL/otHu1PjOQ4hziYwu/A
n80gp3pmPMa4yV5CDZt72qL4jH8llXPpH4gErvXvSyKfrvmelkJBILB53mAa04pq
BZWhkbcqldhMo35y3Ac+WcRk9zlkGq0NPuUcCb959h+pRXuZWtKWxQ2miwi413e1
1ecBRO64SvXSphflFfMMCB730aIXC/dsZAtBXqs8v+i4cIz9g8Z4fZS6c38nUA23
wBleNWylaxHn6UDRZAGRY12JFxFe3QxCP0RKTjwo0eF3HG7IZIGQKHnztjlqD4ko
ZOQmxPYW2+96XnS8n7y+gA517u10OIVZBocD9FX10c3wvS+Lpxg=
=KAuZ
-----END PGP SIGNATURE-----
Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
Pull last minute virtio bugfixes from Michael Tsirkin:
"Minor bugfixes all over the place"
* tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
virtio_balloon: fix shrinker count
virtio_balloon: fix shrinker scan number of pages
virtio_console: allocate inbufs in add_port() only if it is needed
virtio_ring: fix return code on DMA mapping fails
Pull input fix from Dmitry Torokhov:
"Just a single revert as RMI mode should not have been enabled for this
model [yet?]"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Revert "Input: synaptics - enable RMI mode for X1 Extreme 2nd Generation"
Enable the fixed regulator driver so that consumers can control
fixed regulator devices at runtime. These include both GPIO
controlled regulators and always-on (non-controllable) board
regulators.
Change-Id: I599c48e825fe546219146a893b5c8101a7e681ca
Signed-off-by: David Collins <[email protected]>
Add support to enforce proxy consumer requests defined in device
tree for fixed regulator devices. These can be used to ensure
that regulators are not accidentally disabled before all consumers
have had a chance to make their own requests.
Change-Id: Ib971aae138897ded6cb4efd9a7eddc17d9a07f7f
Signed-off-by: David Collins <[email protected]>
Update clk-aop dummycc to support actual clock enable
which will allow apps to turn on QDSS clocks.
Change-Id: I5b2ab894b7d36e2ed78bbd82dc3ac6848c50ab8c
Signed-off-by: Vivek Aknurwar <[email protected]>
Remove CLK_ENABLE_HAND_OFF flag. Supporting this flag
will bring in clock framework change to handle or update hand off
flag during clk core init and clk tree unused calls.
Earlier CLK_ENABLE_HAND_OFF was added to gain performance
optimization by avoiding multiple AOP requests to enable qmp clocks.
If necessary, similar optimization can be supported with an
explicit proxy vote that is not removed until sync-state.
Currently QDSS driver can vote on the qmp clks as necessary.
Change-Id: I055520995a35ea4f76e0840788957e454f1b7926
Signed-off-by: Vivek Aknurwar <[email protected]>
Add dynamic loading of modules support to this driver.
Change-Id: Ic5d39b17c7089f092007347c844746a6e0833944
Signed-off-by: Vivek Aknurwar <[email protected]>
This reverts commit 68b9c5066e39af41d3448abfc887c77ce22dd64d.
Ugh, I really dropped the ball on this one :\. So as it turns out RMI4
works perfectly fine on the X1 Extreme Gen 2 except for one thing I
didn't notice because I usually use the trackpoint: clicking with the
touchpad. Somehow this is broken, in fact we don't even seem to indicate
BTN_LEFT as a valid event type for the RMI4 touchpad. And, I don't even
see any RMI4 events coming from the touchpad when I press down on it.
This only seems to work for PS/2 mode.
Since that means we have a regression, and PS/2 mode seems to work fine
for the time being - revert this for now. We'll have to do a more
thorough investigation on this.
Signed-off-by: Lyude Paul <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
Pull networking fixes from David Miller:
1) Validate tunnel options length in act_tunnel_key, from Xin Long.
2) Fix DMA sync bug in gve driver, from Adi Suresh.
3) TSO kills performance on some r8169 chips due to HW issues, disable
by default in that case, from Corinna Vinschen.
4) Fix clock disable mismatch in fec driver, from Chubong Yuan.
5) Fix interrupt status bits define in hns3 driver, from Huazhong Tan.
6) Fix workqueue deadlocks in qeth driver, from Julian Wiedmann.
7) Don't napi_disable() twice in r8152 driver, from Hayes Wang.
8) Fix SKB extension memory leak, from Florian Westphal.
* git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (54 commits)
r8152: avoid to call napi_disable twice
MAINTAINERS: Add myself as maintainer of virtio-vsock
udp: drop skb extensions before marking skb stateless
net: rtnetlink: prevent underflows in do_setvfinfo()
can: m_can_platform: remove unnecessary m_can_class_resume() call
can: m_can_platform: set net_device structure as driver data
hv_netvsc: Fix send_table offset in case of a host bug
hv_netvsc: Fix offset usage in netvsc_send_table()
net-ipv6: IPV6_TRANSPARENT - check NET_RAW prior to NET_ADMIN
sfc: Only cancel the PPS workqueue if it exists
nfc: port100: handle command failure cleanly
net-sysfs: fix netdev_queue_add_kobject() breakage
r8152: Re-order napi_disable in rtl8152_close
net: qca_spi: Move reset_count to struct qcaspi
net: qca_spi: fix receive buffer size check
net/ibmvnic: Ignore H_FUNCTION return from H_EOI to tolerate XIVE mode
Revert "net/ibmvnic: Fix EOI when running in XIVE mode"
net/mlxfw: Verify FSM error code translation doesn't exceed array size
net/mlx5: Update the list of the PCI supported devices
net/mlx5: Fix auto group size calculation
...
Enable QSEE IPC IRQ bridge for Lahaina. This can now be
compiled as a module.
Change-Id: I82c4fe3deb79be6360039b77d452bf387bf228a7
Signed-off-by: Jay Jayanna <[email protected]>
By default s_maxbytes is set to MAX_NON_LFS, which limits the usable
file size to 2GB, enforced by the vfs.
Commit b9b1f8d593 ("AFS: write support fixes") added support for the
64-bit fetch and store server operations, but did not change this value.
As a result, attempts to write past the 2G mark result in EFBIG errors:
$ dd if=/dev/zero of=foo bs=1M count=1 seek=2048
dd: error writing 'foo': File too large
Set s_maxbytes to MAX_LFS_FILESIZE.
Fixes: b9b1f8d593 ("AFS: write support fixes")
Signed-off-by: Marc Dionne <[email protected]>
Signed-off-by: David Howells <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Servers sending callback breaks to the YFS_CM_SERVICE service may
send up to YFSCBMAX (1024) fids in a single RPC. Anything over
AFSCBMAX (50) will cause the assert in afs_break_callbacks to trigger.
Remove the assert, as the count has already been checked against
the appropriate max values in afs_deliver_cb_callback and
afs_deliver_yfs_cb_callback.
Fixes: 35dbfba311 ("afs: Implement the YFS cache manager service")
Signed-off-by: Marc Dionne <[email protected]>
Signed-off-by: David Howells <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Glink packet driver can now be enabled to be compiled as a module.
Change-Id: Ifafb62ce6672281c033cabd0315093f76c8e9449
Signed-off-by: Jay Jayanna <[email protected]>
Add USB QMP DP Combo and UNI PHY registers definition available
on Lahaina.
Change-Id: Ied3db1480d16c659ebe6e8e6662b0c49bde9020f
Signed-off-by: Mayank Rana <[email protected]>
Call napi_disable() twice would cause dead lock. There are three situations
may result in the issue.
1. rtl8152_pre_reset() and set_carrier() are run at the same time.
2. Call rtl8152_set_tunable() after rtl8152_close().
3. Call rtl8152_set_ringparam() after rtl8152_close().
For #1, use the same solution as commit 8481141246 ("r8152: Re-order
napi_disable in rtl8152_close"). For #2 and #3, add checking the flag
of IFF_UP and using napi_disable/napi_enable during mutex.
Signed-off-by: Hayes Wang <[email protected]>
Signed-off-by: David S. Miller <[email protected]>