Commit graph

1,169,205 commits

Author SHA1 Message Date
Dmitry Baryshkov
8cb72adb1c drm/msm: Stop using iommu_present()
Even if some IOMMU has registered itself on the platform "bus", that
doesn't necessarily mean it provides translation for the device we
care about. Replace iommu_present() with a more appropriate check.

On Qualcomm platforms the IOMMU can be specified either for the MDP/DPU
device or for its parent MDSS device depending on the actual platform.
Check both of them, since that is how both DPU and MDP5 drivers work.

Co-developed-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Patchwork: https://patchwork.freedesktop.org/patch/489699/
Link: https://lore.kernel.org/r/20220616081106.350262-4-dmitry.baryshkov@linaro.org
Signed-off-by: Rob Clark <robdclark@chromium.org>
2022-07-06 18:54:13 -07:00
Jakub Kicinski
69d7d257cd Revert "Merge branch 'octeontx2-af-next'"
This reverts commit 2ef8e39f58, reversing
changes made to e7ce9fc9ad.

There are build warnings here which break the normal
build due to -Werror. Ratheesh was nice enough to quickly
follow up with fixes but didn't hit all the warnings I
see on GCC 12 so to unlock net-next from taking patches
let get this series out for now.

Link: https://lore.kernel.org/r/20220707013201.1372433-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-07-06 18:43:55 -07:00
Kishon Vijay Abraham I
f16afe238a soc: ti: pruss: Enable support for PRUSS-M subsystem on K3 AM62x SoCs
The K3 AM62x family of SoC has one PRUSS-M instance and it has two
Programmable Real-Time Units (PRU0 and PRU1). This does not support
Industrial Communications Subsystem features like Ethernet.

The existing pruss platform driver has been updated to support this
through a new AM62x specific compatible.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Link: https://lore.kernel.org/r/20220602120613.2175-4-kishon@ti.com
2022-07-06 19:34:45 -05:00
Kishon Vijay Abraham I
75938bab63 dt-bindings: soc: ti: pruss: Update bindings for K3 AM62x SoCs
Update the PRUSS bindings for the PRUSSM instance present in
AM625 SoC.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20220602120613.2175-3-kishon@ti.com
2022-07-06 19:34:45 -05:00
Kishon Vijay Abraham I
b8c8d647f2 dt-bindings: soc: ti: pruss: Re-arrange "compatible" in alphabetic order
Re-arrange "compatible" string in alphabetic order to decrease the
chance of conflicts.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20220602120613.2175-2-kishon@ti.com
2022-07-06 19:34:45 -05:00
Jayesh Choudhary
8af893654c arm64: dts: ti: k3-am62-main: Enable crypto accelerator
Add the node for sa3ul crypto accelerator.

Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Link: https://lore.kernel.org/r/20220624043905.129207-1-j-choudhary@ti.com
2022-07-06 19:34:30 -05:00
Al Viro
dd45ab9dd2 first_iovec_segment(): just return address
... and calculate the offset in the caller

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2022-07-06 20:32:34 -04:00
Guillaume La Roque
e2788887b3 arm64: dts: ti: k3-am625-sk: Enable ramoops
Enable ramoops features to easily debug some issues.

Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Link: https://lore.kernel.org/r/20220517122828.2985179-1-glaroque@baylibre.com
2022-07-06 19:29:19 -05:00
Aswath Govindraju
c553bf25f0 arm64: dts: ti: k3-am642-sk: Add pinmux corresponding to main_uart0
Add pinmux details required for the zeroth instance of main UART.

Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Link: https://lore.kernel.org/r/20220516113417.3516-1-a-govindraju@ti.com
2022-07-06 19:28:04 -05:00
David Gow
671007281d apparmor: test: Remove some casts which are no-longer required
With some of the stricter type checking in KUnit's EXPECT macros
removed, several casts in policy_unpack_test are no longer required.

Remove the unnecessary casts, making the conditions clearer.

Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
Acked-by: John Johansen <john.johansen@canonical.com>
Signed-off-by: David Gow <davidgow@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
2022-07-06 17:35:52 -06:00
Andy Shevchenko
c4bcc1b99b Input: goodix - switch use of acpi_gpio_get_*_resource() APIs
No need to open code functionality that is provided by the
acpi_gpio_get_irq_resource() and acpi_gpio_get_io_resource().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20220705180252.963-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2022-07-06 16:29:50 -07:00
Maxim Mikityanskiy
5b759bf2f9 net/mlx5e: Ring the TX doorbell on DMA errors
TX doorbells may be postponed, because sometimes the driver knows that
another packet follows (for example, when xmit_more is true, or when a
MPWQE session is closed before transmitting a packet).

However, the DMA mapping may fail for the next packet, in which case a
new WQE is not posted, the doorbell isn't updated either, and the
transmission of the previous packet will be delayed indefinitely.

This commit fixes the described rare error flow by posting a NOP and
ringing the doorbell on errors to flush all the previous packets. The
MPWQE session is closed before that. DMA mapping in the MPWQE flow is
moved to the beginning of mlx5e_sq_xmit_mpwqe, because empty sessions
are not allowed. Stop room always has enough space for a NOP, because
the actual TX WQE is not posted.

Fixes: e586b3b0ba ("net/mlx5: Ethernet Datapath files")
Signed-off-by: Maxim Mikityanskiy <maximmi@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2022-07-06 16:11:56 -07:00
Gal Pressman
452133dd58 net/mlx5e: Fix capability check for updating vnic env counters
The existing capability check for vnic env counters only checks for
receive steering discards, although we need the counters update for the
exposed internal queue oob counter as well. This could result in the
latter counter not being updated correctly when the receive steering
discards counter is not supported.
Fix that by checking whether any counter is supported instead of only
the steering counter capability.

Fixes: 0cfafd4b4d ("net/mlx5e: Add device out of buffer counter")
Signed-off-by: Gal Pressman <gal@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2022-07-06 16:11:56 -07:00
Roi Dayan
6c4e8fa03f net/mlx5e: CT: Use own workqueue instead of mlx5e priv
Allocate a ct priv workqueue instead of using mlx5e priv one
so flushing will only be of related CT entries.
Also move flushing of the workqueue before rhashtable destroy
otherwise entries won't be valid.

Fixes: b069e14fff ("net/mlx5e: CT: Fix queued up restore put() executing after relevant ft release")
Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Oz Shlomo <ozsh@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2022-07-06 16:11:55 -07:00
Liu, Changcheng
1afbd1e283 net/mlx5: Lag, correct get the port select mode str
mode & mode_flags is updated at the end of mlx5_activate_lag which
may not reflect the actual mode as shown in below logic:
    mlx5_activate_lag(struct mlx5_lag *ldev,
    |-- unsigned long flags = 0;
    |-- err = mlx5_lag_set_flags(ldev, mode, tracker, shared_fdb, &flags);
    |-- err = mlx5_create_lag(ldev, tracker, mode, flags);
              |-- mlx5_get_str_port_sel_mode(ldev);
    |-- ldev->mode = mode;
    |-- ldev->mode_flags = flags;
Use mode & flag as parameters to get port select mode info.

Fixes: 94db331778 ("net/mlx5: Support multiport eswitch mode")
Signed-off-by: Liu, Changcheng <jerrliu@nvidia.com>
Reviewed-by: Eli Cohen <elic@nvidia.com>
Reviewed-by: Mark Bloch <mbloch@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2022-07-06 16:11:55 -07:00
Paul Blakey
0c9d876545 net/mlx5e: Fix enabling sriov while tc nic rules are offloaded
There is a total of four 4M entries flow tables. In sriov disabled
mode, ct, ct_nat and post_act take three of them. When adding the
first tc nic rule in this mode, it will take another 4M table
for the tc <chain,prio> table. If user then enables sriov, the legacy
flow table tries to take another 4M and fails, and so enablement fails.

To fix that, have legacy fdb take the next available maximum
size from the fs ft pool.

Fixes: 4a98544d18 ("net/mlx5: Move chains ft pool to be used by all firmware steering")
Signed-off-by: Paul Blakey <paulb@nvidia.com>
Reviewed-by: Roi Dayan <roid@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2022-07-06 16:11:55 -07:00
Tariq Toukan
2ec6cf9b74 net/mlx5e: kTLS, Fix build time constant test in RX
Use the correct constant (TLS_DRIVER_STATE_SIZE_RX) in the comparison
against the size of the private RX TLS driver context.

Fixes: 1182f36593 ("net/mlx5e: kTLS, Add kTLS RX HW offload support")
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Reviewed-by: Maxim Mikityanskiy <maximmi@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2022-07-06 16:11:54 -07:00
Tariq Toukan
6cc2714e85 net/mlx5e: kTLS, Fix build time constant test in TX
Use the correct constant (TLS_DRIVER_STATE_SIZE_TX) in the comparison
against the size of the private TX TLS driver context.

Fixes: df8d866770 ("net/mlx5e: kTLS, Use kernel API to extract private offload context")
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Reviewed-by: Maxim Mikityanskiy <maximmi@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2022-07-06 16:11:54 -07:00
Mark Bloch
4892bd9830 net/mlx5: Lag, decouple FDB selection and shared FDB
Multiport eswitch is required to use native FDB selection instead of
affinity, This was achieved by passing the shared_fdb flag down
the HW lag creation path. While it did accomplish the goal of setting
FDB selection mode to native, it had the side effect of also
creating a shared FDB configuration.

This created a few issues:
- TC rules are inserted into a non active FDB, which means traffic isn't
  offloaded as all traffic will reach only a single FDB.
- All wire traffic is treated as if a single physical port received it; while
  this is true for a bond configuration, this shouldn't be the case for
  multiport eswitch.

Create a new flag MLX5_LAG_MODE_FLAG_FDB_SEL_MODE_NATIVE
to indicate what FDB selection mode should be used.

Fixes: 94db331778 ("net/mlx5: Support multiport eswitch mode")
Signed-off-by: Mark Bloch <mbloch@nvidia.com>
Reviewed-by: Eli Cohen <elic@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2022-07-06 16:11:54 -07:00
Eli Cohen
d6c13d74b5 net/mlx5: TC, allow offload from uplink to other PF's VF
Redirecting traffic from uplink to a VF is a legal operation of
mulitport eswitch mode. Remove the limitation.

Fixes: 94db331778 ("net/mlx5: Support multiport eswitch mode")
Signed-off-by: Eli Cohen <elic@nvidia.com>
Reviewed-by: Maor Dickman <maord@nvidia.com>
Reviewed-by: Mark Bloch <mbloch@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2022-07-06 16:11:54 -07:00
Fabio M. De Francesco
6bac30bb8f zonefs: Call page_address() on page acquired with GFP_KERNEL flag
zonefs_read_super() acquires a page with alloc_page(GFP_KERNEL). That
page cannot come from ZONE_HIGHMEM, thus there's no need to map it with
kmap().

Therefore, use a plain page_address() on that page.

Suggested-by: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
2022-07-07 07:30:36 +09:00
Ard Biesheuvel
e5c46fde75 ARM: 9214/1: alignment: advance IT state after emulating Thumb instruction
After emulating a misaligned load or store issued in Thumb mode, we have
to advance the IT state by hand, or it will get out of sync with the
actual instruction stream, which means we'll end up applying the wrong
condition code to subsequent instructions. This might corrupt the
program state rather catastrophically.

So borrow the it_advance() helper from the probing code, and use it on
CPSR if the emulated instruction is Thumb.

Cc: <stable@vger.kernel.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-07-06 22:44:49 +01:00
Dmitry Osipenko
e4ced82deb ARM: 9213/1: Print message about disabled Spectre workarounds only once
Print the message about disabled Spectre workarounds only once. The
message is printed each time CPU goes out from idling state on NVIDIA
Tegra boards, causing storm in KMSG that makes system unusable.

Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-07-06 22:44:49 +01:00
Linus Walleij
2bf6204240 ARM: 9212/1: domain: Modify Kconfig help text
After the removal of set_fs() the reference to set_fs() is stale.
Alter the helptext to reflect what the config option really does.

Fixes: 8ac6f5d7f8 ("ARM: 9113/1: uaccess: remove set_fs() implementation")
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-07-06 22:44:49 +01:00
Linus Walleij
cc45b83638 ARM: 9211/1: domain: drop modify_domain()
This function/macro isn't used anywhere in the kernel.
The only user was set_fs() and was deleted in the set_fs()
removal patch set.

Fixes: 8ac6f5d7f8 ("ARM: 9113/1: uaccess: remove set_fs() implementation")
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-07-06 22:44:49 +01:00
Zhen Lei
598f0a99fa ARM: 9210/1: Mark the FDT_FIXED sections as shareable
commit 7a1be318f5 ("ARM: 9012/1: move device tree mapping out of linear
region") use FDT_FIXED_BASE to map the whole FDT_FIXED_SIZE memory area
which contains fdt. But it only reserves the exact physical memory that
fdt occupied. Unfortunately, this mapping is non-shareable. An illegal or
speculative read access can bring the RAM content from non-fdt zone into
cache, PIPT makes it to be hit by subsequently read access through
shareable mapping(such as linear mapping), and the cache consistency
between cores is lost due to non-shareable property.

|<---------FDT_FIXED_SIZE------>|
|                               |
 -------------------------------
| <non-fdt> | <fdt> | <non-fdt> |
 -------------------------------

1. CoreA read <non-fdt> through MT_ROM mapping, the old data is loaded
   into the cache.
2. CoreB write <non-fdt> to update data through linear mapping. CoreA
   received the notification to invalid the corresponding cachelines, but
   the property non-shareable makes it to be ignored.
3. CoreA read <non-fdt> through linear mapping, cache hit, the old data
   is read.

To eliminate this risk, add a new memory type MT_MEMORY_RO. Compared to
MT_ROM, it is shareable and non-executable.

Here's an example:
  list_del corruption. prev->next should be c0ecbf74, but was c08410dc
  kernel BUG at lib/list_debug.c:53!
  ... ...
  PC is at __list_del_entry_valid+0x58/0x98
  LR is at __list_del_entry_valid+0x58/0x98
  psr: 60000093
  sp : c0ecbf30  ip : 00000000  fp : 00000001
  r10: c08410d0  r9 : 00000001  r8 : c0825e0c
  r7 : 20000013  r6 : c08410d0  r5 : c0ecbf74  r4 : c0ecbf74
  r3 : c0825d08  r2 : 00000000  r1 : df7ce6f4  r0 : 00000044
  ... ...
  Stack: (0xc0ecbf30 to 0xc0ecc000)
  bf20:                                     c0ecbf74 c0164fd0 c0ecbf70 c0165170
  bf40: c0eca000 c0840c00 c0840c00 c0824500 c0825e0c c0189bbc c088f404 60000013
  bf60: 60000013 c0e85100 000004ec 00000000 c0ebcdc0 c0ecbf74 c0ecbf74 c0825d08
  ... ...                                           <  next     prev  >
  (__list_del_entry_valid) from (__list_del_entry+0xc/0x20)
  (__list_del_entry) from (finish_swait+0x60/0x7c)
  (finish_swait) from (rcu_gp_kthread+0x560/0xa20)
  (rcu_gp_kthread) from (kthread+0x14c/0x15c)
  (kthread) from (ret_from_fork+0x14/0x24)

The faulty list node to be deleted is a local variable, its address is
c0ecbf74. The dumped stack shows that 'prev' = c0ecbf74, but its value
before lib/list_debug.c:53 is c08410dc. A large amount of printing results
in swapping out the cacheline containing the old data(MT_ROM mapping is
read only, so the cacheline cannot be dirty), and the subsequent dump
operation obtains new data from the DDR.

Fixes: 7a1be318f5 ("ARM: 9012/1: move device tree mapping out of linear region")
Suggested-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-07-06 22:44:48 +01:00
Ard Biesheuvel
0609e20024 ARM: 9209/1: Spectre-BHB: avoid pr_info() every time a CPU comes out of idle
Jon reports that the Spectre-BHB init code is filling up the kernel log
with spurious notifications about which mitigation has been enabled,
every time any CPU comes out of a low power state.

Given that Spectre-BHB mitigations are system wide, only a single
mitigation can be enabled, and we already print an error if two types of
CPUs coexist in a single system that require different Spectre-BHB
mitigations.

This means that the pr_info() that describes the selected mitigation
does not need to be emitted for each CPU anyway, and so we can simply
emit it only once.

In order to clarify the above in the log message, update it to describe
that the selected mitigation will be enabled on all CPUs, including ones
that are unaffected. If another CPU comes up later that is affected and
requires a different mitigation, we report an error as before.

Fixes: b9baf5c8c5 ("ARM: Spectre-BHB workaround")
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-07-06 22:44:48 +01:00
Alan Previn
b94a1a207d drm/i915/guc: Asynchronous flush of GuC log regions
Both error-capture and relay-logging mechanism use the GuC
log infrastructure. That means the KMD must send a log flush
complete notification back to GuC after reading the data out.
This call is currently being sent synchronously.
However, synchronous H2Gs cause problems when the system is
backed up. There is no need for this to be synchronous. The
KMD wasn't even looking at the return status from it. So make
it asynchronous and then there is no issue about time outs.

Signed-off-by: Alan Previn <alan.previn.teres.alexis@intel.com>
Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220607002314.1451656-2-alan.previn.teres.alexis@intel.com
2022-07-06 14:38:56 -07:00
Al Viro
59dbd7d090 iov_iter: massage calling conventions for first_{iovec,bvec}_segment()
Pass maxsize by reference, return length via the same.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2022-07-06 17:19:57 -04:00
Al Viro
dda8e5d17c iov_iter: first_{iovec,bvec}_segment() - simplify a bit
We return length + offset in page via *size.  Don't bother - the caller
can do that arithmetics just as well; just report the length to it.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2022-07-06 17:11:11 -04:00
Dmitry Baryshkov
864cfdeb76 ARM: dts: qcom: msm8974: rename GPU's OPP table node
Rename the GPU's opp table node to make it follow the
display/msm/gpu.yaml schema.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220706145412.1566011-6-dmitry.baryshkov@linaro.org
2022-07-06 16:04:22 -05:00
Dmitry Baryshkov
d8e51f13c3 ARM: dts: qcom: apq8064: disable DSI and DSI PHY by default
Disable DSI and DSI PHY devices by default. The only actual user,
Nexus 7, already contains `status = "okay"` property in the respective
devices nodes.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220706145412.1566011-5-dmitry.baryshkov@linaro.org
2022-07-06 16:04:19 -05:00
Dmitry Baryshkov
9c10bb43db ARM: dts: qcom: apq8064: rename DSI PHY iface clock
Follow the usual scheme and use name 'iface' rather than 'iface_clk' for
the interface clock. The DSI PHY driver can cope with both of them, so
there is no breakage.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220706145412.1566011-4-dmitry.baryshkov@linaro.org
2022-07-06 16:04:15 -05:00
Krzysztof Kozlowski
76f11e77f9 arm64: defconfig: enable Qualcomm Bandwidth Monitor
Enable the Qualcomm Bandwidth Monitor to allow scaling interconnects
depending on bandwidth usage between CPU and memory.  This is used
already on Qualcomm SDM845 SoC.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220704121730.127925-4-krzysztof.kozlowski@linaro.org
2022-07-06 15:58:13 -05:00
Krzysztof Kozlowski
b9c2ae6cac soc: qcom: icc-bwmon: Add bandwidth monitoring driver
Bandwidth monitoring (BWMON) sits between various subsytems like CPU,
GPU, Last Level caches and memory subsystem.  The BWMON can be
configured to monitor the data throuhput between memory and other
subsytems.  The throughput is measured within specified sampling window
and is used to vote for corresponding interconnect bandwidth.

Current implementation brings support for BWMON v4, used for example on
SDM845 to measure bandwidth between CPU (gladiator_noc) and Last Level
Cache (memnoc).  Usage of this BWMON allows to remove fixed bandwidth
votes from cpufreq (CPU nodes) thus achieve high memory throughput even
with lower CPU frequencies.

The driver was tested on SDM845.

Co-developed-by: Thara Gopinath <thara.gopinath@gmail.com>
Signed-off-by: Thara Gopinath <thara.gopinath@gmail.com>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220704121730.127925-3-krzysztof.kozlowski@linaro.org
2022-07-06 15:57:51 -05:00
Krzysztof Kozlowski
a7ee53e19b dt-bindings: interconnect: qcom,msm8998-cpu-bwmon: add BWMON device
Add bindings for the Qualcomm Bandwidth Monitor device providing
performance data on interconnects.  The bindings describe only BWMON CPU
(version 4), e.g. the instance which appeared for the first on Qualcomm
MSM8998 SoC and is also used on SDM845.  This BWMON device sits between
CPU and Last Level Cache Controller.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Acked-by: Georgi Djakov <djakov@kernel.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220704121730.127925-2-krzysztof.kozlowski@linaro.org
2022-07-06 15:57:51 -05:00
David Heidelberg
363c1b04cf ARM: dts: qcom: extend scm compatible to match dt-schema
First device specific compatible, then general one.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: David Heidelberg <david@ixit.cz>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220626183247.142776-1-david@ixit.cz
2022-07-06 15:52:17 -05:00
Al Viro
599a0bdd72 iov_iter: lift dealing with maxpages out of first_{iovec,bvec}_segment()
caller can do that just as easily

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2022-07-06 16:43:19 -04:00
Arnd Bergmann
72e76dc2f9 Cleanup of ARM DTS for v5.20, part two
Series of cleanups for ARM DTS - white-spaces, gpio-key subnode names
 and gpio-key properties for more boards: TI, Marvell, AT91 and Aspeed.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmLFuI4QHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD1wjGD/9wkItMwbnNVyAFg0UKLDnpkxAct2jG5pa0
 58QJQmEJjXSVw1QfOZgZkMwmdhu6u2axao+QtwLk42GBHBZzRWt7ZZZxc8W82XKB
 VvUkjcerZ36Hwsa2ooSNRVfShnCARbMky9iJ/xQn2w/w8b2edmu+AMG/X0Qu5tex
 Ncu+6UAGBeler0BGH2EipvP+ifseM54+tOUMQCEcWzaL5QLDYC8f00trKQzy/+Pa
 EIN8KD4OGOw+UUvJ1dC79yv2wraCO7EUTkSM3xgcrXDwQmXDWVmzkMrwnTLLYKku
 zb6p6YtFyZkf1AG7UafEevTWqyiZ4Niw0BN+BPNmKb+1scAgNqHMHntGNwga0bkh
 iC3lqnENEgl1fsjEQ/dhRmwOoZl+JJFiFTS7VwPm1RDh8flHrmka0h0+g0Kt1Nzr
 CDBA7I3xPchK699b/5RZWhH8HaCRbWARM+yC8ksZb77Bd3JDGGeLbv9aMkP8dW4p
 MC3nCYjDP9/pvBDpmdXDfN1T9YdOGWfVf71CaM8BnGy1txODzDsFF5c+KWICsETj
 CzYA0Vghyy5KQzu9RlYP1glBIBwpfD8bJyizJfISUmyCnuLb6LbC3qS3W3EF7UNk
 YnLVhSWUtZnqmRZ8MBYWQ9pkAi8DJPvgzpF9pJG/ffEnU16PGDX1shP1pX7JWFH2
 OMUDjuOGaw==
 =yRAK
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmLF8bsACgkQmmx57+YA
 GNn5/w/9E/mTfChCT53UytBGSEzr9Zl7olNZkOoS+21rSiCYSL+4XUifGbdw8oaH
 IX1HTNoKNFKhV1qsp4Dh6ClJN5fBG0UyVUO70OrTVo3dI6/9ZN2aN28+aIMQgzRw
 yv8IDLyBSoMtSCircuVjfO6KX78Mhtew+3UvljbNDnQuEMbyHxAe7hvsIZFBL5RX
 9FnkYsMGs7wctblBe2sbZMVvYmuRgs2qNHthWwwCpRwf2IgWWsTRtjpMgA25QQpm
 c/G4aHTlc1c4kOVmnjAOm5XGLn33S2VK1tt0/Dcl3GcdfqH6X9FTpvftYCRs0HiD
 MidmQmonpWMS6XXmaAubEmtRbFldGY/MzDSTxaLsQZSKbVBh8WgcnB2iw3lkhcGr
 ewck/idIRfJINh/bJJ3LsrjX5TTBWkV0dp3LKEUpfXOQV9d+uzB4YwmOY7xoA1QR
 iZUrPrGFmqweq2FnKiFJBg08bLEU9IPE8y4HVIx+uih/Djwegcc2YdTK5ye7QxnC
 MiEMT76PZJI7MEkfQjDiDfJLwDRBkOY0ZqpaXFg5b4yu9LpNsCNyi3nHV+w7D129
 iwTQaaIAhPq7TFOBlG8at/kjTIO8hWcX5di6VASHXVmbm+5ULBlwHguyjpO+xgrj
 NdoiSOxunPmhJrL4od7uJOgx9QHKhg8qmq78oLTCJUbUpu3taBo=
 =I0d2
 -----END PGP SIGNATURE-----

Merge tag 'dt-cleanup-5.20-2' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/dt

Cleanup of ARM DTS for v5.20, part two

Series of cleanups for ARM DTS - white-spaces, gpio-key subnode names
and gpio-key properties for more boards: TI, Marvell, AT91 and Aspeed.

* tag 'dt-cleanup-5.20-2' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  ARM: dts: aspeed: correct gpio-keys properties
  ARM: dts: aspeed: align gpio-key node names with dtschema
  ARM: dts: at91: drop unneeded status from gpio-keys
  ARM: dts: at91: correct gpio-keys properties
  ARM: dts: at91: align gpio-key node names with dtschema
  ARM: dts: omap: correct gpio-keys properties
  ARM: dts: omap: align gpio-key node names with dtschema
  ARM: dts: marvell: correct gpio-keys properties
  ARM: dts: marvell: align gpio-key node names with dtschema
  ARM: dts: omap: adjust whitespace around '='
  ARM: dts: ti: adjust whitespace around '='

Link: https://lore.kernel.org/r/20220706163754.33064-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-07-06 22:34:02 +02:00
Dmitry Baryshkov
2b4e75a7a7 dt-bindings: clock: qcom,gcc-msm8996: add more GCC clock sources
Add additional GCC clock sources. This includes PCIe and USB PIPE and
UFS symbol clocks.

Fixes: 2a8aa18c11 ("dt-bindings: clk: qcom: Fix self-validation, split, and clean cruft")
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220620071936.1558906-2-dmitry.baryshkov@linaro.org
2022-07-06 15:33:15 -05:00
Arnd Bergmann
ec21041bb3 Cleanup of ARM64 DTS for v5.20, part two
Remaining cleanups for ARM64 DTS: gpio-keys and led node names on Marvel
 platforms.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmLFuQsQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD17EZD/9BLYWbXy+xsUSKVs6a7PCP2JV2TDTym+2/
 qUP+gBcWHtO08MRmti+Wa2hiLZOV8xcr0Su+fbv/xA4iLJM52ZhgsQLZxwX7DYUg
 x/FbhgBTVgCHaFHlZJK1sHaFpAOaxbYhqiycdtzkLzuS+6DjUuKQPhDlfOb4suct
 LGl/8dAI5W4PP1YYAtB1IaI8JdaPf9ElC1VRdJGeyVMZPEhOjc2gUzuCPp/iRrdR
 e+0J/F2OmutFI4G7VUEczSl3Xx83gM/uj6QyhN0idszdbTHRjzCZynqdG8mFJYiK
 LZAK2NZJ5qIyHpnxR3EWJZejgF3eE9uD/EIyHPLCh2/26tcs7LRnRZKFKdUx4JNQ
 NN6l57p9KuXnlQGv95YrxJVo5iGqnlshUIm57v+WdpdPIMNPiZHUHH0/0kMACvSM
 n8wxTMTXaGe1gwdry8ePHURcnboDuPef0VQ4C6dSZ2xqh0b+6bTqKv31+Mj2tHDo
 WiPdFnoSRkWhUO220ZBj7DPTXedpdon8K6/8vSiNTQi7wsZQ8Kroyd/7ytKhDfzl
 tIFufGjNRFumAzk3v4GVp29G5lbsf2rrOHSnMPD/ItoXh16PzSRq4YyCrkRI/lqa
 1zK2KBsoMyObBRpRLgAOuf0MfsdwJWT/kWkzV4LzSFy/zDa8qNEcV7SYQC0C9Hd0
 UFOcAn+lkQ==
 =oAoI
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmLF8XUACgkQmmx57+YA
 GNmRzw/+LkaC50V0MBk5oetzogaLIfHV2Clnnu3as98zFNv0tSrG0hsnR4Vc6hix
 8GvfbIesu8D57QjzdLiusRX8/bpZQFaE4IKhcYzaHHq5Fr74OMdURy2iA6gVXAIY
 pr7TCJN5BajdatoXqEfDanxaOkGXBwM5z3qoyL41X5jDJHx3Lz903bx+7ws5N3FJ
 UhbDe4bZi+fsfBRMrjFCGX2lxdnR9Zv64V/tXCURymT9zBKf9ydjQLZ5m61rkuBL
 1rjaOw2UEosrzzmGzW6tSCmtOZLHrpZ3pHcAGggAeZHiN03iaZitgFW48cT9E+iI
 B78kq/swsgXOmMdP99OUGS9W0sqy8kVRc3MpGy7Btq4+jlBn07yYyoOYQgMSvyPU
 AFBMiIQRL006HU/WP+1QltDewnFLmNPB22+N5fcvcwLDt94K1I41N1paRfGBFdKI
 MkYz48yg2Q5JoNZ2vgt2uZXiGVc+iGZcfhfFZFI+fC7KSjAWh0zbfjIcpuaN3scL
 NwlITx/wVzMct/p/9ohmpj2UyA5XRs7j7OXMbHmlk4ykvFfVvQk8CBP/OeO33k3P
 IV8dk4cK9eopVut24dRWsfM+B5jHL785TrXogbSDSRNJUZ77IAr2vtTAQlaicXuC
 a2yLrHT3BrW2947F5zlxQHU+rkKkhMwsMxDYdmzuCFHgZ0bWcx4=
 =jO+A
 -----END PGP SIGNATURE-----

Merge tag 'dt64-cleanup-5.20-2' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/dt

Cleanup of ARM64 DTS for v5.20, part two

Remaining cleanups for ARM64 DTS: gpio-keys and led node names on Marvel
platforms.

* tag 'dt64-cleanup-5.20-2' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  arm64: dts: marvell: armada-3720: align lednode names with dtschema
  arm64: dts: marvell: align gpio-key node names with dtschema

Link: https://lore.kernel.org/r/20220706163754.33064-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-07-06 22:32:53 +02:00
Marijn Suijten
e5de51e264 arm64: dts: qcom: sm6125: Add DLL/DDR configuration on SDHCI 1/2
These config values have been extracted from CodeLinaro's most recent
trinket/sm6125 tag:
https://git.codelinaro.org/clo/la/kernel/msm-4.14/-/blob/LA.UM.9.11.r1-05600-NICOBAR.QSSI12.0/arch/arm64/boot/dts/qcom/trinket.dtsi

Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220508100336.127176-3-marijn.suijten@somainline.org
2022-07-06 15:30:35 -05:00
Marijn Suijten
cbfb5668ae arm64: dts: qcom: sm6125: Append -state suffix to pinctrl nodes
According to qcom,sm6125-pinctrl.yaml all nodes inside the tlmm must be
suffixed by -state:

    qcom/sm6125-sony-xperia-seine-pdx201.dtb: pinctrl@500000: 'sdc2-off', 'sdc2-on' do not match any of the regexes: '-state$', 'pinctrl-[0-9]+'

The label names have been updated to match, going from sdc2_state_X to
sdc2_X_state.

Fixes: cff4bbaf2a ("arm64: dts: qcom: Add support for SM6125")
Fixes: 82e1783890 ("arm64: dts: qcom: sm6125: Add support for Sony Xperia 10II")
Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220508100336.127176-2-marijn.suijten@somainline.org
2022-07-06 15:30:35 -05:00
Marijn Suijten
6990640a93 arm64: dts: qcom: sm6125: Move sdc2 pinctrl from seine-pdx201 to sm6125
Both the sdc2-on and sdc2-off pinctrl nodes are used by the
sdhci@4784000 node in sm6125.dtsi.  Surprisingly sdc2-off is defined in
sm6125, yet its sdc2-on counterpart is only defined in board-specific DT
for the Sony Seine PDX201 board/device resulting in an "undefined label
&sdc2_state_on" error if sm6125.dtsi were included elsewhere.
This sm6125 base dtsi should not rely on externally defined labels; the
properties referencing it should then also be written externally.
Since the sdc2-on pin configuration is board-independent just like
sdc2-off, move it from seine-pdx201.dts into sm6125.dtsi.

The SDCard-detect pin (gpio98) is however board-specific, and remains as
an overwrite in seine-pdx201.dts for both the on and off state.

As a drive-by cleanup, reorder bias- and drive-strength properties.

Fixes: cff4bbaf2a ("arm64: dts: qcom: Add support for SM6125")
Fixes: 82e1783890 ("arm64: dts: qcom: sm6125: Add support for Sony Xperia 10II")
Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220508100336.127176-1-marijn.suijten@somainline.org
2022-07-06 15:30:34 -05:00
Al Viro
7392ed1734 iov_iter_get_pages{,_alloc}(): cap the maxsize with MAX_RW_COUNT
All callers can and should handle iov_iter_get_pages() returning
fewer pages than requested.  All in-kernel ones do.  And it makes
the arithmetical overflow analysis much simpler...

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2022-07-06 16:27:17 -04:00
Al Viro
18fa9af726 iov_iter_bvec_advance(): don't bother with bvec_iter
do what we do for iovec/kvec; that ends up generating better code,
AFAICS.

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Christian Brauner (Microsoft) <brauner@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2022-07-06 16:23:32 -04:00
Shunsuke Mie
1bc2b7bfba PCI: endpoint: Don't stop controller when unbinding endpoint function
Unbinding an endpoint function from the endpoint controller shouldn't stop
the controller.  This is especially a problem for multi-function endpoints
where other endpoints may still be active.

Don't stop the controller when unbinding one of its endpoints.  Normally
the controller is stopped via configfs.

Fixes: 349e7a85b2 ("PCI: endpoint: functions: Add an EP function to test PCI")
Link: https://lore.kernel.org/r/20220622040924.113279-1-mie@igel.co.jp
Signed-off-by: Shunsuke Mie <mie@igel.co.jp>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Kishon Vijay Abraham I <kishon@ti.com>
2022-07-06 15:23:31 -05:00
Bjorn Andersson
d1a405d222 arm64: dts: qcom: db820c: Add user LEDs
The db820c has 4 "user LEDs", all connected to the PMI8994. The first
three are connected to the three current sinks provided by the TRILED
and the fourth is connected to MPP2.

By utilizing the DTEST bus the MPP is fed the control signal from the
fourth LPG block, providing a consistent interface to the user.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Dylan Van Assche <me@dylanvanassche.be>
Link: https://lore.kernel.org/r/20220505022706.1692554-5-bjorn.andersson@linaro.org
2022-07-06 15:23:07 -05:00
Bjorn Andersson
f041bb3cd7 arm64: dts: qcom: pmi8994: Define MPP block
The pmi8994 has 4 multi-purpose-pins, add these to the definition.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Dylan Van Assche <me@dylanvanassche.be>
Link: https://lore.kernel.org/r/20220505022706.1692554-4-bjorn.andersson@linaro.org
2022-07-06 15:23:07 -05:00
Bjorn Andersson
f23f1fa880 arm64: dts: qcom: sdm845: Enable user LEDs on DB845c
The DB845c has 4 "user LEDs", the last one is already supported as it's
just wired to a gpio. Now that the LPG binding is in place we can wire
up the other 3 LEDs as well.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Caleb Connolly <caleb@connolly.tech>
Reviewed-by: Dylan Van Assche <me@dylanvanassche.be>
Link: https://lore.kernel.org/r/20220505022706.1692554-3-bjorn.andersson@linaro.org
2022-07-06 15:23:07 -05:00