Commit Graph

1169205 Commits (887185649c7ee8a9cc2d4e94de92bbbae6cd3747)

Author SHA1 Message Date
Fabrice Gasnier 3066bc2d58 pwm: stm32-lp: fix the check on arr and cmp registers update
The ARR (auto reload register) and CMP (compare) registers are
successively written. The status bits to check the update of these
registers are polled together with regmap_read_poll_timeout().
The condition to end the loop may become true, even if one of the
register isn't correctly updated.
So ensure both status bits are set before clearing them.

Fixes: e70a540b4e ("pwm: Add STM32 LPTimer PWM driver")
Signed-off-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
2023-01-30 16:42:45 +01:00
Geert Uytterhoeven b3c650ad9b pwm: Move pwm_capture() dummy to restore order
Move the dummy pwm_capture(), to make the declaration order of all
dummies to match the declaration order of the real functions.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
2023-01-30 16:42:45 +01:00
Emil Renner Berthing 334c7b13d3 pwm: sifive: Always let the first pwm_apply_state succeed
Commit 2cfe9bbec5 added support for the
RGB and green PWM controlled LEDs on the HiFive Unmatched board
managed by the leds-pwm-multicolor and leds-pwm drivers respectively.
All three colours of the RGB LED and the green LED run from different
lines of the same PWM, but with the same period so this works fine when
the LED drivers are loaded one after the other.

Unfortunately it does expose a race in the PWM driver when both LED
drivers are loaded at roughly the same time. Here is an example:

  |          Thread A           |          Thread B           |
  |  led_pwm_mc_probe           |  led_pwm_probe              |
  |    devm_fwnode_pwm_get      |                             |
  |      pwm_sifive_request     |                             |
  |        ddata->user_count++  |                             |
  |                             |    devm_fwnode_pwm_get      |
  |                             |      pwm_sifive_request     |
  |                             |        ddata->user_count++  |
  |         ...                 |          ...                |
  |    pwm_state_apply          |    pwm_state_apply          |
  |      pwm_sifive_apply       |      pwm_sifive_apply       |

Now both calls to pwm_sifive_apply will see that ddata->approx_period,
initially 0, is different from the requested period and the clock needs
to be updated. But since ddata->user_count >= 2 both calls will fail
with -EBUSY, which will then cause both LED drivers to fail to probe.

Fix it by letting the first call to pwm_sifive_apply update the clock
even when ddata->user_count != 1.

Fixes: 9e37a53eb0 ("pwm: sifive: Add a driver for SiFive SoC PWM")
Signed-off-by: Emil Renner Berthing <emil.renner.berthing@canonical.com>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
2023-01-30 16:42:45 +01:00
Michael Schmitz be6c50d315 selftests/seccomp: Add m68k support
Add m68k seccomp definitions to seccomp_bpf self test code.

Tested on ARAnyM.

Signed-off-by: Michael Schmitz <schmitzmic@gmail.com>
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
Link: https://lore.kernel.org/r/20230112035529.13521-4-schmitzmic@gmail.com
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
2023-01-30 16:40:15 +01:00
Michael Schmitz 6baaade155 m68k: Add kernel seccomp support
Add secure_computing() call to syscall_trace_enter to actually
filter system calls.

Add necessary arch Kconfig options, define TIF_SECCOMP trace
flag and provide basic seccomp filter support in asm/syscall.h

syscall_get_nr currently uses the syscall nr stored in orig_d0
because we change d0 to a default return code before starting a
syscall trace. This may be inconsistent with syscall_rollback
copying orig_d0 to d0 (which we never check upon return from
trace). We use d0 for the return code from syscall_trace_enter
in entry.S currently, and could perhaps expand that to store
a new syscall number returned by the seccomp filter before
executing the syscall. This clearly needs some discussion.

seccomp_bpf self test on ARAnyM passes 81 out of 94 tests.

Signed-off-by: Michael Schmitz <schmitzmic@gmail.com>
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
Link: https://lore.kernel.org/r/20230112035529.13521-3-schmitzmic@gmail.com
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
2023-01-30 16:40:15 +01:00
Michael Schmitz 2ca8a1de44 m68k: Check syscall_trace_enter() return code
Check return code of syscall_trace_enter(), and skip syscall
if -1. Return code will be left at what had been set by
ptrace or seccomp (in regs->d0).

No regression seen in testing with strace on ARAnyM.

Signed-off-by: Michael Schmitz <schmitzmic@gmail.com>
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
Link: https://lore.kernel.org/r/20230112035529.13521-2-schmitzmic@gmail.com
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
2023-01-30 16:40:15 +01:00
Geert Uytterhoeven 65a1601609 m68k: defconfig: Update defconfigs for v6.2-rc3
- Drop CONFIG_NFT_OBJREF=m (removed in commit d037abc241
    ("netfilter: nft_objref: make it builtin")),
  - Drop CONFIG_TEST_STRSCPY=m (replaced by auto-modular
    CONFIG_STRSCPY_KUNIT_TEST in commit 41eefc46a3 ("string:
    Convert strscpy() self-test to KUnit")),
  - Drop CONFIG_TEST_SIPHASH=m (replaced by auto-modular
    CONFIG_SIPHASH_KUNIT_TEST in commit fb3d88ab35 ("siphash:
    Convert selftest to KUnit")).

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Link: https://lore.kernel.org/r/fdd3b827ebc5abea6c295df4121048a6a03b698a.1672654705.git.geert@linux-m68k.org
Link: https://lore.kernel.org/r/6c4589bc56ffba0f923a7361262397f6c32a3dc1.1673255008.git.geert@linux-m68k.org
2023-01-30 16:40:15 +01:00
Shuai Xue 53fc7e80f3 ACPI: APEI: EINJ: Limit error type to 32-bit width
The bit map of error types to inject is 32-bit width [1].

Add parameter check to reflect the fact.

[1] ACPI Specification 6.4, Section 18.6.4. Error Types

Signed-off-by: Shuai Xue <xueshuai@linux.alibaba.com>
Reviewed-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2023-01-30 16:40:05 +01:00
Xin Gao 40202cca4b m68k: q40: Do not initialise statics to 0
Remove initialization to zero of static variables.

Signed-off-by: Xin Gao <gaoxin@cdjrlc.com>
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
Link: https://lore.kernel.org/r/20220718105553.6529-1-gaoxin@cdjrlc.com
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
2023-01-30 16:39:43 +01:00
Rob Clark dbd7a2a941 PM / devfreq: Fix build issues with devfreq disabled
The existing no-op shims for when PM_DEVFREQ (or an individual governor)
only do half the job.  The governor specific config/tuning structs need
to be available to avoid compile errors in drivers using devfreq.

Fixes: 6563f60f14 ("drm/msm/gpu: Add devfreq tuning debugfs")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Acked-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Acked-by: Chanwoo Choi <cw00.choi@samsung.com>
Patchwork: https://patchwork.freedesktop.org/patch/519801/
Link: https://lore.kernel.org/r/20230123153745.3185032-1-robdclark@gmail.com
2023-01-30 07:37:40 -08:00
Mark Brown 68efe8f7a1 KVM: selftests: Fix build of rseq test
The KVM rseq test is failing to build in -next due to a commit merged
from the tip tree which adds a wrapper for sys_getcpu() to the rseq
kselftests, conflicting with the wrapper already included in the KVM
selftest:

rseq_test.c:48:13: error: conflicting types for 'sys_getcpu'
   48 | static void sys_getcpu(unsigned *cpu)
          |             ^~~~~~~~~~
In file included from rseq_test.c:23:
../rseq/rseq.c:82:12: note: previous definition of 'sys_getcpu' was here
   82 | static int sys_getcpu(unsigned *cpu, unsigned *node)
          |            ^~~~~~~~~~

Fix this by removing the local wrapper and moving the result check up to
the caller.

Fixes: 99babd04b2 ("selftests/rseq: Implement rseq numa node id field selftest")
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Link: https://lore.kernel.org/r/20230106-fix-kvm-rseq-build-v1-1-b704d9831d02@kernel.org
2023-01-30 16:29:45 +01:00
Arnd Bergmann 938370c668 This pull request contains Broadcom ARM/ARM64 SoCs drivers updates for
6.3, please pull the following:
 
 - Uwe removes an empty platform driver remove function in the
   bcm2835-power driver
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEm+Rq3+YGJdiR9yuFh9CWnEQHBwQFAmPVeT0ACgkQh9CWnEQH
 BwQ9SxAA3RPIiscQzb139Jf8+FGANN9NJuNJfWUmFF4TX/r+XhrGO9J5R6thPAoJ
 e7AXa8k6sgQqlTPOTA4LW691JMQPc1AeHsTkP4vd5Hu0GM6ocDgMLnGejm8EoBwn
 KafFqYUUOa6ffb2S1pNZIncLsJ+o/xWMn4jzgMww0edB9wx/5ODLePNnjXJpe2a1
 3AESPrS2MtHZS/I/K9BEtdoMio3d0J6hbA7p8g2ZbfIoMJUpI4XIpV+zhOyrNkPN
 68QDsj6HeMkLupdWx3oMi0pN/t31IoC8YA8oZ5SN3eBr90oVQe3WaBEEMZjCHq6t
 cu40Kshf+eGnebjAknbBzErkbuNjV6WBE0xnC+1Q824zIM/XtTE0m2tSIO37edy6
 PWi4u+FfdNpyjqnC71wS3TWCmcaH3CQkc5Hz+OGKvNonnQgtm2qoVe4YrR4K+ayX
 bGZQoGYwO1C+hWBpT1IYewW+fNDnIfskK1y67X/87uk41pmyFMF44ccVh/S5oUhP
 q0Pe7wLfMLvATnnj1WDvjspcuXAeCaykhx9ge7Yo7uE0OSxMgnjan8g6SWXmEPa7
 vtJ2V0n0aNMDjTYD3xpw0ypUMntu3hG/uH5tS607eF0LJfhyoAsPzi/hzRmm8BYE
 SNu9KBeYjmaAYgoSnkIODCAPokYwC3BRgNFphYmJ4T/aCuSpbsY=
 =pZ/Q
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPX4NEACgkQmmx57+YA
 GNnniA/+IxEh5/6YJ+Xj3G2OcPQV3396Iif/Q6rMKTCto4MzjXp1W9q0XAs95qUI
 l2IJoe0oMOXk61pofx+SWWXWh90c9VLzhFdp+fpAM8sOZkRHaXSdgXy+zjL3+Rf3
 ARNOEcCchdLPzdvjp9ttF2sNQdXnVO52TgrL2x63KnSLQbkxQNsoFC1tCUgzQ0uv
 JAtt+hIDaQFdjJ3CXrFou15iGOaQE3W6J0kq/0t/E9FLjubwdtBdUQDzQhDccWvz
 /ay/W8/nNwc4xMdueSi84dP97RKM4uTFTEFvE/P+8m1lJi8AEzN0cK/Qzl9luasp
 92TyH1Cp8EbGyjBImRmp2ilJLwLMljZNlkTaq9+R8hiZ3rEJh346FFNwisJm4zyJ
 ZCp82mB3faRk7ahGtU6p4S2XaO6KQHss/JCUnxsCi+87iJp1Tz5ZSaEGNmdlzU9L
 s3aKmCeVml2vaEmffsYUNl9u8dXmrHxZQKb65TtATCcswSliI0kjlWzQaD9arOew
 6rSX/10xHpi/JoDg7kV9r01rxt/gwdZ7gfmRm6obKxGOxhGqDRP8HmujG5rRRmtS
 3sk9CrXbLVoQaOICj24h5Xl0PqZU+e10y/OnYP9qiUxPzu52HsjLfQSufCnB/lFL
 3/rEHTdVBwxXNcj0tLkobhfuFeKzRGqCo/2OuM9KBJkqXgFThFA=
 =nfdV
 -----END PGP SIGNATURE-----

Merge tag 'arm-soc/for-6.3/drivers' of https://github.com/Broadcom/stblinux into soc/drivers

This pull request contains Broadcom ARM/ARM64 SoCs drivers updates for
6.3, please pull the following:

- Uwe removes an empty platform driver remove function in the
  bcm2835-power driver

* tag 'arm-soc/for-6.3/drivers' of https://github.com/Broadcom/stblinux:
  soc: bcm: bcm2835-power: Drop empty platform remove function

Link: https://lore.kernel.org/r/20230128193844.1628888-1-f.fainelli@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-01-30 16:22:57 +01:00
Arnd Bergmann d5d39b46f0 - introduce Allwinner PPU driver
- limit iteration in sram debugfs
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQSPRixG1tysKC2PKM10Ba7+DO8kkwUCY9RTJgAKCRB0Ba7+DO8k
 kx95AP0X7OJAPv+c2E+LUkgR+GzOHWSefZm600tteEgcC3SBVQEAg3g/QyLk18SM
 LkZdm5++fSkxX0EwSrMthUq8P1CU5w4=
 =CS1P
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPX3k0ACgkQmmx57+YA
 GNnL/Q//WrC02t6Kl+L4Pk9rWJS5pgdM2dUb3XAfR8/vp9PRW5yuPnxT41sv2dP4
 uBMF1t6FKtJimabB6DFD8mZeiW3JiamEH/PSd0Qo11NX8pPmJhDYXYTUdy6fTHhB
 JMFK+piOkgVPiv55ROgXCEvTDd1wOedC3SumEMo2bZkpFRGcylYbb/k/MJbjktjA
 oC2tIGeDV7BxKjl7NxyLwfV7+TqswVd6OvacWKgUZuGxR1laHitDM6ggv9YvA1K4
 w5CE5xaHoBXhtway0DdrAfURzhldn59Q6UdUvcHuYfjt6Di7RD431jJdQnlRTP9G
 WaUZYjIrTb2izyz5AWcDLI2O3Gzg8eBhoINLjSw7aaScQnPEB1g69M+nhQyOfh/w
 gC8M2ti7T7uX4HbAuhdOnfBtf6qaG6LluDlOClPTBmWcZvpKTzcqlx3ZNjMUfVGa
 z+Ft5ui8pdQmxtHUPt1xH6AFk5GMkgnSGTI5Kc302EntetPxG7UMgq3km4QfCBY6
 6x/tF7GxgfYIbDGwr6qXpe5g8Oyuo7zqxKmChRiQjmCudKdG+rqdQfGYlvNdBtHq
 YJABQEb/+DDu+75tfURS0CY6eiMRr3NQUFgLExZv/hL2mN56j4IrALB39TRVwEON
 WKSFBq71G/BFWvNxIc2YsdR8+MechEZW2KmY1F2n6OXy+pJvo9I=
 =nXYr
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-drivers-for-6.3-1' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/drivers

- introduce Allwinner PPU driver
- limit iteration in sram debugfs

* tag 'sunxi-drivers-for-6.3-1' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  soc: sunxi: Add Allwinner D1 PPU driver
  dt-bindings: power: Add Allwinner D1 PPU
  soc: sunxi: sram: Only iterate over SRAM children

Link: https://lore.kernel.org/r/Y9RXXATRNqEv0GJT@jernej-laptop
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-01-30 16:12:12 +01:00
Arnd Bergmann 80dea24a49 Renesas driver updates for v6.3 (take two)
- Add support for the Renesas RZ/V2M External Power Sequence
     Controller (PWC).
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCY9ORbQAKCRCKwlD9ZEnx
 cJ6sAP40TCkcVZHRPyaWKovBnDOcPf3CIchqdAdLqa5sZX6ChAEA5GToDJPvPlbF
 DVGchT/gQ6nwb0+9NO9K3v41Zu/33wA=
 =Vv/R
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPX3eYACgkQmmx57+YA
 GNn1qQ//TDG538lBsXLZ8iClv7pusBWzdEY7Bff2l438fVCxxNox7IEaUOQaHDEN
 ccrZKWHCblzIeCEw+571eynTC1tvnTjdGYUGoncljP+9MA4E9W6sKKwMZjoMDcRU
 OuI7l5JYgYD0QKdgh9AAawg2sOojNvAz8efRofFjjwQ64BcXpG2+YMr4rcwKDE8d
 ARH4WkmOzayqWoxiQq3pp3S7w0XhNEi06rkyNkDTPufFByqYt4XH8Tyn8PwkQfye
 ioMHQ6HlMbqp2QLyUj2+5TXXdjY1pTjJnptS7xGc0TZbs9QDtl9I+FJZWSALpXK7
 oCvt4+HP35L6PQ2xnUg1Yrgkeg6/bn4JmQjh4+piHHwKQBHQiIKsR5Xt4df29eXr
 UVliE1GSDt4EuPVa7Hon+qzlG5a/7dtTfMczlxMtHy9V6ZX8gxgM6yydF9Om1WKs
 hpDzmJjFzz4E7g6N/s5AAvVlmX0PFOU+V7CEF7pqW4eKfPsHchRJDvfaUOcchfa7
 SgXj7n8Y/eWOEhHgZtxKphO7L7FhrLd/bIyfFv4JIJu1bIOZi0NydWDyFnm8G3ZF
 OM2F8Z4cp2ZumeioiAr9lq3aGOK8BtZ+mHzShAtVCBTypGtJEuLYOtRtg/cwbbl5
 aZICuRal/mSVrRvxjyhPWpSyHXo3QX8MejNG45UL7HSfcKhPirU=
 =LSBp
 -----END PGP SIGNATURE-----

Merge tag 'renesas-drivers-for-v6.3-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/drivers

Renesas driver updates for v6.3 (take two)

  - Add support for the Renesas RZ/V2M External Power Sequence
    Controller (PWC).

* tag 'renesas-drivers-for-v6.3-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel:
  soc: renesas: Add PWC support for RZ/V2M

Link: https://lore.kernel.org/r/cover.1674815095.git.geert+renesas@glider.be
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-01-30 16:10:29 +01:00
Arnd Bergmann 75dae633c9 RISC-V SoC drivers for v6.3-mw0
It's all StarFive stuff this time:
 Their new JH7110 SoC uses a SiFive core complex, and therefore a
 SiFive cache controller too. That needed a compatible added to both the
 binding and driver.
 The JH7110 also has power domains, which are supported by a new driver
 and a corresponding dt-binding.
 
 Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQRh246EGq/8RLhDjO14tDGHoIJi0gUCY9A3iwAKCRB4tDGHoIJi
 0qE4AQDPCcoarT/vLZ28H4wBHPUBxnmU1rut3uNM4f1lIqK0PgD+N6N3xGajmVy0
 UzD8/qg2gua94rx/2dmE4PWvun+newk=
 =Lqa0
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPX3XUACgkQmmx57+YA
 GNmTrw//amIzDDsnOBOblQMV0yJCpOgj/r6azaYdb2M7a++3ysdUVDnqz9E0VlkE
 YusfPAg//Fc/6/r6nV6CiCodoprC5g8dkrhFvLUllLnvSQP9Fz/BB99o93aITGUj
 gqRubCpEnVbsDkinUKDKw8A/RSkMhxsTN3d+JhuZi9RtISUiiNpAGJavut5AsLZS
 r7ADgNQppcHE02ujdLNszYOZdQgOh00ewKtDWw6RsBGcybTRSuiGnANtaEufvl+W
 pROapERp/ca8o6odUXaoP7YLFDAHtCbgREdzRtaOtO0HEcP8BKawpJvDHVtTScaQ
 h5o//DGHKBRDYOVykzAlPdjLXQqvN2vb8Li2SO1DdHvD9Mdjqg0XFKUUIv/7kVu8
 uIpat254aGujDsBX+1y+cePSh7UJvjv6KHQz3gVIpfPCcceKXyR7zTrMobC5d2/b
 ALBgDXhzfy00v/CFKYjBSIskLaLTSx9fz5CRan2xbpo0TpB8o7hb/nCcRJkGOGUW
 1LojbM+vdaX/isqxNFAfowCDfBwyLaygvL8HCjT0IKuZ1End9GBuiYDMDfssw1M0
 cDepFYy5e2VOfKVhexC2ZTL5n7RDpFy3lVSrVD4gFERZg7iH2UtU4QHHbOujNxe9
 yBHIaEFtKJy7244XM3ug8wP6eRDhjo3OFJkMrecdCOQVx3knAUU=
 =Dfx0
 -----END PGP SIGNATURE-----

Merge tag 'riscv-soc-for-v6.3-mw0' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into soc/drivers

RISC-V SoC drivers for v6.3-mw0

It's all StarFive stuff this time:
Their new JH7110 SoC uses a SiFive core complex, and therefore a
SiFive cache controller too. That needed a compatible added to both the
binding and driver.
The JH7110 also has power domains, which are supported by a new driver
and a corresponding dt-binding.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>

* tag 'riscv-soc-for-v6.3-mw0' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux:
  soc: starfive: Add StarFive JH71XX pmu driver
  dt-bindings: power: Add starfive,jh7110-pmu
  soc: sifive: ccache: Add StarFive JH7110 support
  dt-bindings: sifive,ccache0: Support StarFive JH7110 SoC

Link: https://lore.kernel.org/r/Y9LNIm9pkr+Owv/e@spud
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-01-30 16:08:36 +01:00
Lorenzo Pieralisi 581e43ef5d MAINTAINERS: Promote Krzysztof to PCI controller maintainer
Krzysztof has contributed significantly to the PCI controller subsystem
recently through reviews, tooling and submissions.

Update the MAINTAINERS file to grant him the role he deserves.

Link: https://lore.kernel.org/r/20230130100850.24994-1-lpieralisi@kernel.org
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: Krzysztof Wilczyński <kw@linux.com>
2023-01-30 09:07:15 -06:00
Andy Shevchenko eed5a3bfaf gpiolib: of: Move enum of_gpio_flags to its only user
GPIO library for OF is the only user for enum of_gpio_flags.
Move it there.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Rob Herring <robh@kernel.org>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:31 +01:00
Uwe Kleine-König 3101b1e4ba gpio: mvebu: Use IS_REACHABLE instead of IS_ENABLED for CONFIG_PWM
To check if a certain function (here e.g. pwmchip_add()) can be called
IS_REACHABLE is the better check. The relevant difference to IS_ENABLED
is that IS_REACHABLE evaluates to 0 if the current code is builtin but the
checked symbol is =m and so must not be used.

Today there is no practical impact as CONFIG_PWM is a bool.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:31 +01:00
Andy Shevchenko fd648e1010 gpio: zevio: Add missing header
The commit 899f6a9c4364 ("gpio: zevio: Use proper headers and drop
OF_GPIO dependency") missed one header this driver depends on. Add it.

Fixes: 899f6a9c4364 ("gpio: zevio: Use proper headers and drop OF_GPIO dependency")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:31 +01:00
Linus Walleij e3863fa123 gpio: Get rid of gpio_to_chip()
The gpio_to_chip() function refers to the global GPIO numberspace
which is a problem we want to get rid of. Get this function out
of the header and open code it into gpiolib with appropriate FIXME
notices so no new users appear in the kernel.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:30 +01:00
Andy Shevchenko 51435300df gpio: pcf857x: Drop unneeded explicit casting
The s32 is compatible with int, no need to cast.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:30 +01:00
Andy Shevchenko e2d1812116 gpio: pcf857x: Make use of device properties
Convert the module to be property provider agnostic and allow
it to be used on non-OF platforms.

Add mod_devicetable.h include.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:30 +01:00
Andy Shevchenko 91a0192e90 gpio: pcf857x: Get rid of legacy platform data
Platform data is a legacy interface to supply device properties
to the driver. In this case we don't have in-kernel users for it.
Moreover it uses plain GPIO numbers which is no-no for a new code.

Just remove it for good.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:30 +01:00
Andy Shevchenko b0047b90db gpio: rockchip: Do not mention legacy API in the code
Replace mentioning of legacy API by the latest one.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:30 +01:00
Andy Shevchenko a060dc6620 gpio: wcd934x: Remove duplicate assignment of of_gpio_n_cells
The of_gpio_n_cells default is 2 when ->of_xlate() callback is
not defined. No need to assign it explicitly in the driver.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:30 +01:00
Andy Shevchenko 9c8224d04b gpio: zevio: Use proper headers and drop OF_GPIO dependency
The driver doesn't depend on the OF_GPIO to be compiled. Hence
the proper header to use is mod_devicetable.h. Replace of*.h with
the above mentioned and drop redundant dependency.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:30 +01:00
Andy Shevchenko a25d1dfdfc gpio: zevio: Remove duplicate assignment of of_gpio_n_cells
The of_gpio_n_cells default is 2 when ->of_xlate() callback is
not defined. No need to assign it explicitly in the driver.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:30 +01:00
Andy Shevchenko 13e856b8df gpio: xilinx: Remove duplicate assignment of of_gpio_n_cells
The of_gpio_n_cells default is 2 when ->of_xlate() callback is
not defined. No need to assign it explicitly in the driver.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:30 +01:00
Chunyan Zhang 3c0c7b1dc6 dt-bindings: gpio: Add compatible string for Unisoc UMS512
UMS512 use the same GPIO and EIC controller with SC9860.

Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:30 +01:00
Chunyan Zhang bf26a472a2 dt-bindings: gpio: Convert Unisoc EIC controller binding to yaml
Convert the Unisoc EIC controller binding to DT schema format.
Update the maxItems of 'reg' property, since the current gpio-eic-sprd
driver supports 3 reg items. Also removed a few similar examples.

Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:30 +01:00
Chunyan Zhang 59184e1273 dt-bindings: gpio: Convert Unisoc GPIO controller binding to yaml
Convert the Unisoc gpio controller binding to DT schema format.

Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:30 +01:00
Andy Shevchenko 83b9e0fc9e gpio: ge: Remove duplicate assignment of of_gpio_n_cells
The of_gpio_n_cells default is 2 when ->of_xlate() callback is
not defined. No need to assign it explicitly in the driver.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:30 +01:00
Andy Shevchenko e226cb199c gpio: davinci: Remove duplicate assignment of of_gpio_n_cells
The of_gpio_n_cells default is 2 when ->of_xlate() callback is
not defined. No need to assign it explicitly in the driver.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:30 +01:00
Andreas Kemnade 92bf78b33b gpio: omap: use dynamic allocation of base
Static allocatin is deprecated and may cause probe mess,
if probe order is unusual.

like this example
[    2.553833] twl4030_gpio twl4030-gpio: gpio (irq 145) chaining IRQs 161..178
[    2.561401] gpiochip_find_base: found new base at 160
[    2.564392] gpio gpiochip5: (twl4030): added GPIO chardev (254:5)
[    2.564544] gpio gpiochip5: registered GPIOs 160 to 177 on twl4030
[...]
[    2.692169] omap-gpmc 6e000000.gpmc: GPMC revision 5.0
[    2.697357] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
[    2.703643] gpiochip_find_base: found new base at 178
[    2.704376] gpio gpiochip6: (omap-gpmc): added GPIO chardev (254:6)
[    2.704589] gpio gpiochip6: registered GPIOs 178 to 181 on omap-gpmc
[...]
[    2.840393] gpio gpiochip7: Static allocation of GPIO base is deprecated, use dynamic allocation.
[    2.849365] gpio gpiochip7: (gpio-160-191): GPIO integer space overlap, cannot add chip
[    2.857513] gpiochip_add_data_with_key: GPIOs 160..191 (gpio-160-191) failed to register, -16
[    2.866149] omap_gpio 48310000.gpio: error -EBUSY: Could not register gpio chip

So probing was done in an unusual order, causing mess
and chips not getting their gpio in the end.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:29 +01:00
Andy Shevchenko a5ec171efd gpio: Remove unused and obsoleted irq_to_gpio()
irq_to_gpio() is legacy and unused API, remove it for good.

This leaves gpio_to_irq() as it's used yet in many places.
Nevertheless, removal of its counterpart is a good signal
to whoever even trying to consider using them that do not.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:29 +01:00
Andy Shevchenko 029d14e900 gpio: davinci: Do not mention legacy API in the code
Replace mentioning of legacy API by the latest one.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:29 +01:00
Andy Shevchenko 149a028a51 gpiolib: Remove unused of_mm_gpiochip_add()
of_mm_gpiochip_add() is unused API, remove it for good.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:29 +01:00
Andy Shevchenko 9a7dcaefdb gpiolib: Do not mention legacy API in the code
Replace mentioning of legacy API by the latest one.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:29 +01:00
Radu Rendec 64d2f4594e gpio: pcf857x: Implement get_multiple/set_multiple methods
This change allows the GPIO core to read/change multiple pins in a
single driver call and subsequent I2C transfer. It helps a lot with
PCF857x devices, since their I2C protocol always reads/changes all
existing pins anyway. Therefore, when the GPIO client code does a bulk
operation on multiple pins, the driver makes a single I2C transfer.

Signed-off-by: Radu Rendec <radu.rendec@gmail.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:29 +01:00
Radu Rendec 17a5f49b49 gpio: pcf857x: Fix indentation of variable declarations
No functional changes. This is a whitespace change only.

Signed-off-by: Radu Rendec <radu.rendec@gmail.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:29 +01:00
Radu Rendec 4628cb0d8e gpio: pcf857x: Replace 'unsigned' with 'unsigned int'
Cosmetic change only to improve the coding style. No functional change,
since 'unsigned' and 'unsigned int' are identical as far as the compiler
is concerned.

Signed-off-by: Radu Rendec <radu.rendec@gmail.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:29 +01:00
Prathamesh Shete 0c27537ad0 gpio: tegra186: add Tegra234 PMC compatible in GPIO driver
Using this patch we are adding PMC compatible string for
Tegra234 in GPIO driver so the IRQ hierarchy can be set.

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Signed-off-by: Prathamesh Shete <pshete@nvidia.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:29 +01:00
Michael Walle 297a44f664 gpio: regmap: use new regmap_might_sleep()
Now that the regmap can be queried whether it might sleep, we can get
rid of the conservative setting "can_sleep = true". New drivers which
want to use gpio-regmap and can access the registers memory-mapped won't
have the restriction that their consumers have to use the
gpiod_*cansleep() variants anymore.

Signed-off-by: Michael Walle <michael@walle.cc>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:29 +01:00
Andy Shevchenko 79aabb1ece gpiolib: sort header inclusion alphabetically
Sort header inclusion alphabetically.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:29 +01:00
Andy Shevchenko 70d0fc4288 gpiolib: Get rid of not used of_node member
All new drivers should use fwnode and / or parent to provide the
necessary information to the GPIO library.

Cc: Thierry Reding <treding@nvidia.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:29 +01:00
Andy Shevchenko dc0989e3aa gpiolib: Introduce gpio_device_get() and gpio_device_put()
Introduce gpio_device_get() and gpio_device_put() helpers
and convert existing users.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:29 +01:00
Andy Shevchenko f2527d8f56 gpio: Remove unused and obsoleted gpio_export_link()
gpio_export_link() is legacy and unused API, remove it for good.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Yanteng Si <siyanteng@loongson.cn>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:29 +01:00
Haibo Chen 6f8ecb7f85 gpio: vf610: connect GPIO label to dev name
Current GPIO label is fixed, so can't distinguish different GPIO
controllers through labels. Use dev name instead.

Fixes: 7f2691a196 ("gpio: vf610: add gpiolib/IRQ chip driver for Vybrid")
Signed-off-by: Clark Wang <xiaoning.wang@nxp.com>
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:28 +01:00
Bartosz Golaszewski a3f7c1d6dd gpio: pca9570: rename platform_data to chip_data
By convention platform_data refers to structures passed to drivers by
code that registers devices. When talking about model-specific data
structures associated with OF compatibles, we usually call them chip_data.

In order to avoid confusion rename all mentions of platform_data to
chip_data.

Fixes: fbb19fe17e ("gpio: pca9570: add slg7xl45106 support")
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
2023-01-30 15:55:28 +01:00
Dmitry Torokhov 650f2dc970 gpiolib: of: remove [devm_]gpiod_get_from_of_node() APIs
Now that everyone is using [devm_]fwnode_gpiod_get[_index]() APIs,
remove OF-specific [devm_]gpiod_get_from_of_node().

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-01-30 15:55:28 +01:00