Commit graph

947024 commits

Author SHA1 Message Date
Krzysztof Kozlowski
a4022f6a21 memory: of: Remove unused headers
The of_memory.c does not use platform_device nor linked list.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2020-07-24 16:18:32 +02:00
Arnd Bergmann
b0fef5edff mvebu fixes for 5.8 (part 1)
- DT change for Armada 38x allowing to add the register needed to fix
   NETA lockup when repeatedly switching speed.
 -----BEGIN PGP SIGNATURE-----
 
 iF0EABECAB0WIQQYqXDMF3cvSLY+g9cLBhiOFHI71QUCXxqaPwAKCRALBhiOFHI7
 1YANAKCEUNj0n91jslQNBACKuB7a79Ag3ACbB/hWOsGi+BVNlDy5mnXeoT5ZEd0=
 =GJyb
 -----END PGP SIGNATURE-----

Merge tag 'mvebu-fixes-5.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into arm/fixes

mvebu fixes for 5.8 (part 1)

- DT change for Armada 38x allowing to add the register needed to fix
  NETA lockup when repeatedly switching speed.

* tag 'mvebu-fixes-5.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu:
  ARM: dts: armada-38x: fix NETA lockup when repeatedly switching speeds
2020-07-24 16:14:24 +02:00
Arnd Bergmann
2ee61200b7 Texas Instruments K3 SoC config updates for v5.9
- Enable chipid driver for j721e/am65x
 - Enable SDHCI driver for am65x
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEEtQ6szHmfiBT7fujkyvq9MXlQGhEFAl8anLkQHHQta3Jpc3Rv
 QHRpLmNvbQAKCRDK+r0xeVAaEe5dD/45XdvEN6WZsJ6gE9+Epgnf4RLM9prD0hhI
 KCRfDftT1UD8P57C0zz1+yUmGV3N7dRvz/uzn0LMx2FDwIX5DvvkZQQYMv2D03VC
 k0WWdoIeV6ei2ZsYiBzJlEP4gdYcnVZhBIAwh7tZmkUaFwdUHgaXOaRlPGzZLEMd
 tx3C/5pMb7Itv8ofYKOt7ZvyoABK7MYKutIz9CItime4EP6qf3tSEbKRLbYlmQAM
 4ExzUUGdq3IRzSOx+S3moT+hMG19OKhsxTjXEkwlQJfGK81N1MigRST0l675E/Rp
 hF/BgNY6nQjFebKTbCpU/uLjSTCxZwQi3Q7IgYMqx/zimcOZIp24UBTWnGyDL0IQ
 /MP9Yupf7qRIgKjNBSglMtFm0qOilKscleM5T6z2xkPqiCqcTWzLwC7lOK3suwoz
 ywRGmvqICh5zO8PLzmZ3TewZ1UgkhI/RQGmoxR7Fq+7JmlDeS33KRQWC8rSW6zbg
 eeJJMTavpExHO2VFdWte82iW2SZokJMP3jd0ISr9RLntzMnWmQ+bFaaxr22c6W9G
 WAhSLfUgSu1pYL7K1G50SHtfkQFv/eOPJxXl/GAA5BkUITuB5EZuvUatHILGG3vX
 JCSzQT5vmzO8wZOnzQUHTrDFQ88W/o0tbnKIg8nB3Tmui2zDMk1r2Lsrdiq36JQi
 dhDXP5Yc7Q==
 =b2HA
 -----END PGP SIGNATURE-----

Merge tag 'ti-k3-config-for-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/kristo/linux into arm/defconfig

Texas Instruments K3 SoC config updates for v5.9

- Enable chipid driver for j721e/am65x
- Enable SDHCI driver for am65x

* tag 'ti-k3-config-for-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/kristo/linux:
  arm64: defconfig: Enable AM654x SDHCI controller
  arm64: arch_k3: enable chipid driver

Link: https://lore.kernel.org/r/c3e68831-c9ec-db06-d855-808ba3da3364@ti.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-07-24 16:13:17 +02:00
Arnd Bergmann
1d4eadaf17 mvebu drivers for 5.9 (part 1)
For firmware on the Turris MOX (Armada 3720 based board), add support
 ECDSA signatures via debugfs.
 -----BEGIN PGP SIGNATURE-----
 
 iF0EABECAB0WIQQYqXDMF3cvSLY+g9cLBhiOFHI71QUCXxqgnwAKCRALBhiOFHI7
 1aROAJ9xw1KBR6g4InE5NvO3yHy29L12SgCeM0klcfvENUGuhW8pntmqY5c3Zu8=
 =4riI
 -----END PGP SIGNATURE-----

Merge tag 'mvebu-drivers-5.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into arm/drivers

mvebu drivers for 5.9 (part 1)

For firmware on the Turris MOX (Armada 3720 based board), add support
ECDSA signatures via debugfs.

* tag 'mvebu-drivers-5.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu:
  firmware: turris-mox-rwtm: add debugfs documentation
  firmware: turris-mox-rwtm: support ECDSA signatures via debugfs

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-07-24 16:12:00 +02:00
Arnd Bergmann
0e3a4cb128 mvebu arm for 5.9 (part 1)
Use of for_each_requested_gpio() for gpio driver still in plat-orion
 for non DT platform.
 -----BEGIN PGP SIGNATURE-----
 
 iF0EABECAB0WIQQYqXDMF3cvSLY+g9cLBhiOFHI71QUCXxqe7QAKCRALBhiOFHI7
 1TxKAJ4hJdhVQZ3ygdkMF9AwIRyMzUnQIwCcCYUXQ7XZ9yNXBj0DpqTZQM5PC0c=
 =UP5s
 -----END PGP SIGNATURE-----

Merge tag 'mvebu-arm-5.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into arm/soc

mvebu arm for 5.9 (part 1)

Use of for_each_requested_gpio() for gpio driver still in plat-orion
for non DT platform.

* tag 'mvebu-arm-5.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu:
  ARM: orion/gpio: Make use of for_each_requested_gpio()

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-07-24 16:11:14 +02:00
Arnd Bergmann
92607f8a44 DaVinci SoC updates for v5.9
This pull requests contains some clean-ups for SoC support.
 No functional changes included.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEETzm5oVCjVpjkLDLaYUG7aOq+BE0FAl8Z8rMACgkQYUG7aOq+
 BE1y7g//djYOmav6e3SqbUHJYBsjaRq2CS/BhmFZsa6e3jvvE1H+uhlsUh6rI5dY
 aacdapC0BS/YkFk2tcy+xKMmYAKXsuedk39mks0gHHDSKw2xDrHjjUCi8qIkmlxL
 nP5th99PLx/hFBd7ZPIM/u+se9IzD42Uxzg0OaTu4BduHlnifS1+3Y6YLusMbhWB
 sFV38nxlmWaS9SCOa37NHfgrRIJkK9Dzfp9nN2YWMYtlmkiuO+7eNHZxYYAzm1cj
 FkM/2Ib1jP1nw1nKUWYQikoMMDgirpp8StXbnbq8Os3IUUD8uadSI34+0o4wkxGQ
 794i4znidRIla7K/syQhLVa3KSCN+APrmETT3Vpd4TKINHCnux+ZPE89TEEVftm+
 DWqR4+PorRM6j9gbEfKWD4vakS5mmDSOfp2vdsHrUA7K/yypql+PcQehgVoaVJQt
 Wi5pR3U6MOtmHs1b8CE5fRYGZbHKCa724b2qcsMDFxFJtcCUfBjvBjXs70+nUyz1
 vZK2qL5/H3nZxJuWyS2Ubn1zA/5GmbtkPa0w0SutTsogRWhNSnRlyPogIY3jM7p4
 abmlmUphdp5t1OuLey8ec0xsncSWw6Tw32X2GA3NxBsw8PQzm092S0xOk/1dO5TI
 1igjgJu+Zif5UwxGqC/a1Tnp7oXRWxcHIMnjCDJypM4YHBlY20M=
 =vKyP
 -----END PGP SIGNATURE-----

Merge tag 'davinci-for-v5.9/soc' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into arm/soc

DaVinci SoC updates for v5.9

This pull requests contains some clean-ups for SoC support.
No functional changes included.

* tag 'davinci-for-v5.9/soc' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci:
  ARM: davinci: dm646x-evm: Simplify error handling in 'evm_sw_setup()'
  ARM: davinci: Fix trivial spelling
  ARM: davinci: Replace HTTP links with HTTPS ones

Link: https://lore.kernel.org/r/348578af-71ea-812e-ec42-31afe7847b85@ti.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-07-24 16:09:16 +02:00
Arnd Bergmann
33c56edacd mvebu dt64 for 5.9 (part 1)
Add SMMU support for the Marvell AP806 based SoCs (Armada 70xx and
 Armada 80xx)
 -----BEGIN PGP SIGNATURE-----
 
 iF0EABECAB0WIQQYqXDMF3cvSLY+g9cLBhiOFHI71QUCXxqifwAKCRALBhiOFHI7
 1XNMAJ9hlYGp/3IgnOsGzobwdPcCzEPwAQCeO1PB6THGuxV/SMgRCgAnXTCQV3E=
 =xYe1
 -----END PGP SIGNATURE-----

Merge tag 'mvebu-dt64-5.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into arm/dt

mvebu dt64 for 5.9 (part 1)

Add SMMU support for the Marvell AP806 based SoCs (Armada 70xx and
Armada 80xx)

* tag 'mvebu-dt64-5.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu:
  arm64: dts: marvell: add SMMU support
2020-07-24 16:07:45 +02:00
Arnd Bergmann
a127fdac23 mvebu dt for 5.9 (part 1)
- Fix the reg-init PHY for the dlink-dns327l (Armada 370)
  - Replace HTTP links with HTTPS one in device tree of the Excito
    Bubba B3 (Kirkwood)
 -----BEGIN PGP SIGNATURE-----
 
 iF0EABECAB0WIQQYqXDMF3cvSLY+g9cLBhiOFHI71QUCXxqh0gAKCRALBhiOFHI7
 1R9KAJ0TuEHE0boReOUAhpAlfYIqYeR5QQCfUuD/p2aoTSfNNyctLQsHmnjBYao=
 =PzgE
 -----END PGP SIGNATURE-----

Merge tag 'mvebu-dt-5.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into arm/dt

mvebu dt for 5.9 (part 1)

 - Fix the reg-init PHY for the dlink-dns327l (Armada 370)
 - Replace HTTP links with HTTPS one in device tree of the Excito
   Bubba B3 (Kirkwood)

* tag 'mvebu-dt-5.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu:
  ARM: dts: dlink-dns327l: fix reg-init PHY
  ARM: dts: kirkwood: Replace HTTP links with HTTPS ones

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-07-24 16:05:45 +02:00
Arnd Bergmann
cf8182fc9d Texas Instruments K3 SoC DT updates for v5.9
- Add platforms chipid nodes for am65x and j721e
 - Update latest data sheet values for MMC on am65x
 - Add serdes and usb3 support for j721e
 - Add analog audio support for j721e
 - Add SD card support for am65x
 - Rename DT nodes for gic-its/smmu to their standard counterparts am65x/j721e
 - HTTP links replaced with HTTPS ones
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEEtQ6szHmfiBT7fujkyvq9MXlQGhEFAl8aj4cQHHQta3Jpc3Rv
 QHRpLmNvbQAKCRDK+r0xeVAaEfxHD/4kE90nx+EyiSGQ5ZCNfoXs/0JB95KAGGcv
 23PGvjYBfD/GFGvbL+4F7GTptqEJrkJXMcfCIR2Nv5fjhA+OjjPMzj73octytasN
 iRc+ESXLgD07bLdTWEvGvMqBaslfLOajs2PSu7LOMGK6NihRiqCGR5urk6e8h0Jt
 gY4gb1EFN01VIYB7n3xy7CgpHx/G6g0VJ1TjpEZVyM5G3K50/qrKzJmxX9MIiVBm
 o9E85dveFe3yxvI6BepwQpfrrVg5j6xlJCHrQ0xepPiKAjCzlTaxOdTm2omGemES
 h7DQ2CAD23SJ+SnF4bCltoNw/1GOfw1CoslB9X4FdvSBknp61VjrfeGp9PKZHxFI
 EvEV1tmpAFAhxSlY4zcyhmpMcBiKzGojGExK0COt5hHm7ssbTIaDKNTTJByzI1cJ
 FkHr609ktYmSyfg9JVejiCPa9D/8etYqkgy/9edM4iYLss4TkPGHHD+C0iqMQaCA
 mcOsquOaTnbiATQuqAaoLzZbUKSO4R57DgXAO7+XzOgaQutBRJ5VMgREM8apNYUa
 baE779XQfCMiOpgEpEpwQMVVgt6S/PUXis6yZy2BpP3npbKVKI53f0wpZc0FvM8e
 9J5cpWBLX1qK0lO8KinGRfW09+EcSlbWe2Byh1EKfqogRsfJlsPYyAuEg3BwDr1o
 XMQS/p1aPQ==
 =0bPs
 -----END PGP SIGNATURE-----

Merge tag 'ti-k3-dt-for-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/kristo/linux into arm/dt

Texas Instruments K3 SoC DT updates for v5.9

- Add platforms chipid nodes for am65x and j721e
- Update latest data sheet values for MMC on am65x
- Add serdes and usb3 support for j721e
- Add analog audio support for j721e
- Add SD card support for am65x
- Rename DT nodes for gic-its/smmu to their standard counterparts am65x/j721e
- HTTP links replaced with HTTPS ones

* tag 'ti-k3-dt-for-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/kristo/linux:
  arm64: dts: k3-j721e-proc-board: Add wait time for sampling Type-C DIR line
  arm64: dts: ti: k3-j721e: Enable Super-Speed support for USB0
  arm64: dts: ti: k3-j721e-main.dtsi: Add USB to SERDES MUX
  arm64: dts: ti: k3-j721e-main: Add system controller node and SERDES lane mux
  arm64: dts: ti: k3-j721e-main: Add WIZ and SERDES PHY nodes
  dt-bindings: mfd: ti,j721e-system-controller.yaml: Add J721e system controller
  arm64: dts: ti: k3-am65/j721e-main: rename gic-its node to msi-controller
  arm64: dts: ti: k3-j721e-main: rename smmu node to iommu
  arm64: dts: ti: k3-*: Replace HTTP links with HTTPS ones
  arm64: dts: ti: k3-am654-base-board: Add support for SD card
  arm64: dts: ti: k3-am65-main: Add support for sdhci1
  arm64: dts: ti: j721e-common-proc-board: Analog audio support
  arm64: dts: ti: k3-j721e-common-proc-board: Remove duplicated main_i2c1_exp4_pins_default
  arm64: dts: ti: k3-am654-main: Update otap-del-sel values
  arm64: dts: ti: k3-j721e-mcu-wakeup: add k3 platforms chipid module node
  arm64: dts: ti: k3-am65-wakeup: add k3 platforms chipid module node

Link: https://lore.kernel.org/r/3b3b9214-769d-ba1b-db5e-44414a8c5756@ti.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-07-24 16:01:43 +02:00
Stephan Gerhold
a63419beaf
ASoC: qcom: common: Avoid printing errors for -EPROBE_DEFER
qcom_snd_parse_of() tends to produce lots of error messages during bootup:

	MultiMedia1: error getting cpu dai name

This happens because the DAIs are not probed until the ADSP remoteproc
has booted, which takes a while. Until it is ready, snd_soc_of_get_dai_name()
returns -EDEFER_PROBE to retry probing later. This is perfectly normal,
so cleanup the kernel log a bit by not printing in case of -EPROBE_DEFER.

Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200723183904.321040-8-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-07-24 15:01:20 +01:00
Stephan Gerhold
118205d241
ASoC: qcom: apq8016_sbc: Use qcom_snd_parse_of()
Now that we have updated qcom_snd_parse_of() to handle the device
tree bindings used for apq8016_sbc, update the apq8016_sbc driver
to use the common function and remove the duplicated code.

Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200723183904.321040-7-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-07-24 15:01:19 +01:00
Stephan Gerhold
f0d67fdba5
ASoC: qcom: common: Parse properties with "qcom," prefix
The apq8016_sbc device tree binding uses a "qcom," vendor prefix
for all device tree properties, while qcom_snd_parse_of() uses the
same properties without a prefix.

In the future it would be nice to make this consistent, however,
for backwards compatibility we need to parse both names to allow
apq8016_sbc to use the common qcom_snd_parse_of() function.

Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200723183904.321040-6-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-07-24 15:01:18 +01:00
Stephan Gerhold
47ea884882
ASoC: qcom: common: Support parsing links without DPCM
So far qcom_snd_parse_of() was only used to parse the device tree
for boards using the QDSP6 driver together with DPCM. apq8016_sbc
uses an almost identical version (apq8016_sbc_parse_of()) which
parses links without DPCM.

Given the similarity of the two functions it is useful to combine
these two. To allow using qcom_snd_parse_of() in apq8016_sbc we
need to support parsing links without DPCM as well.

This is pretty simple: A DPCM link in the device tree is defined using:

  - DPCM frontend: "cpu"
  - DPCM backend:  "cpu", "platform" and "codec"

... while a link without DPCM has "cpu" and "codec" (but no "platform").

Add a few more if conditions to handle links without DPCM correctly.

Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200723183904.321040-5-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-07-24 15:01:18 +01:00
Stephan Gerhold
0a8c336a1e
ASoC: q6afe: Remove unused q6afe_is_rx_port() function
This reverts commit 4a95737440 ("ASoc: q6afe: add support to get
port direction"), since the function is not needed anymore.

q6afe-dai already exposes the possible directions for a DAI through
the DAI capabilities (playback/capture-only DAI). Now we use
snd_soc_dai_link_set_capabilities() to infer the information
directly from the DAI capabilities.

Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200723183904.321040-4-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-07-24 15:01:17 +01:00
Stephan Gerhold
627ab55d74
ASoC: qcom: common: Use snd_soc_dai_link_set_capabilities()
Commit a212008925 ("ASoC: qcom: common: set correct directions for dailinks")
introduced a call to q6afe_is_rx_port() to set the dpcm_playback/capture
parameters correctly. This is necessary because those parameters are now
validated to match the capabilities of the DAIs. [1]

The disadvantage of introducing the call to q6afe_is_rx_port() is that
it makes the qcom_snd_parse_of() helper dependent on the QDSP6 driver.
When the ADSP is bypassed (e.g. in apq8016-sbc) QDSP6 is not used.

There is a generic solution for this now: The correct direction for the links
is already defined by the DAI capabilities (e.g. rx ports only support playback).

Commit 25612477d2 ("ASoC: soc-dai: set dai_link dpcm_ flags with a helper")
introduced the snd_soc_dai_link_set_capabilities() function that we can use
to set dpcm_playback/dpcm_capture according to the capabilities of the DAIs.

Use that for both FE/BE DAI links to avoid the dependency on the QDSP6 driver.

[1]: https://lore.kernel.org/alsa-devel/20200616085409.GA110999@gerhold.net/

Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200723183904.321040-3-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-07-24 15:01:16 +01:00
Stephan Gerhold
ed3b53e7ff
ASoC: qcom: Use devm for resource management
Simplify the machine drivers for newer SoCs a bit by using the
devm_* function calls that automatically release the resources
when the driver is removed or when probing fails.

Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200723183904.321040-2-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-07-24 15:01:15 +01:00
Ronen Krupnik
0183b9b0e9 arm64: dts: amazon: add Amazon's Annapurna Labs Alpine v3 support
This patch adds the initial support for the Amazon's Annapurna Labs
Alpine v3 Soc and Evaluation Platform (EVP).

Link: https://lore.kernel.org/r/20200724132654.16549-7-hhhawa@amazon.com
Signed-off-by: Ronen Krupnik <ronenk@amazon.com>
Signed-off-by: Talel Shenhar <talel@amazon.com>
Signed-off-by: Hanna Hawa <hhhawa@amazon.com>
Acked-by: Antoine Tenart <antoine.tenart@bootlin.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-07-24 15:54:11 +02:00
Hanna Hawa
b29dd11313 dt-bindings: arm: amazon: add Amazon Annapurna Labs Alpine V3
This patch adds DT bindings info for Amazon Annapurna Labs Alpine V3.

Link: https://lore.kernel.org/r/20200724132654.16549-6-hhhawa@amazon.com
Signed-off-by: Hanna Hawa <hhhawa@amazon.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Acked-by: Antoine Tenart <antoine.tenart@bootlin.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-07-24 15:54:09 +02:00
Hanna Hawa
81079390fa dt-bindings: arm: amazon: add missing alpine-v2 DT binding
Amazon Annapurna Labs Alpine family includes: Alpine-v1, Alpine-v2.

This patch adds the missing DT binding of Alpine-v2 in amazon,al.yaml.

Link: https://lore.kernel.org/r/20200724132654.16549-5-hhhawa@amazon.com
Signed-off-by: Hanna Hawa <hhhawa@amazon.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Acked-by: Antoine Tenart <antoine.tenart@bootlin.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-07-24 15:54:06 +02:00
Hanna Hawa
e6293d123a dt-bindings: arm: amazon: update maintainers of amazon,al DT bindings
Update maintainers of amazon,al DT bindings.

Link: https://lore.kernel.org/r/20200724132654.16549-4-hhhawa@amazon.com
Signed-off-by: Hanna Hawa <hhhawa@amazon.com>
Acked-by: Rob Herring <robh@kernel.org>
Acked-by: Antoine Tenart <antoine.tenart@bootlin.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-07-24 15:54:03 +02:00
Hanna Hawa
39889b8294 arm64: dts: amazon: rename al folder to be amazon
As preparation to add device tree binding for Amazon's Annapurna Labs
Alpine v3 support. Rename al device tree folder to be amazon.

Link: https://lore.kernel.org/r/20200724132654.16549-3-hhhawa@amazon.com
Signed-off-by: Hanna Hawa <hhhawa@amazon.com>
Acked-by: Antoine Tenart <antoine.tenart@bootlin.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-07-24 15:54:01 +02:00
Hanna Hawa
34d8ddb4d4 dt-bindings: arm: amazon: rename al,alpine DT binding to amazon,al
As preparation to add device tree binding for Amazon's Annapurna Labs
Alpine v3 support. Rename al,alpine DT binding to amazon,al.

Link: https://lore.kernel.org/r/20200724132654.16549-2-hhhawa@amazon.com
Signed-off-by: Hanna Hawa <hhhawa@amazon.com>
Acked-by: Rob Herring <robh@kernel.org>
Acked-by: Antoine Tenart <antoine.tenart@bootlin.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-07-24 15:53:58 +02:00
Michael Grzeschik
f5e46aa4a1 usb: dwc3: gadget: when the started list is empty stop the active xfer
When we have nothing left to be queued after handling the last trb
we have to stop the current transfer. This way we can ensure that
the next request will be queued with a new and valid timestamp
and will not directly run into an missed xfer.

Reviewed-by: Thinh Nguyen <thinhn@synopsys.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:15 +03:00
Michael Olbrich
c5a7092f40 usb: dwc3: gadget: make starting isoc transfers more robust
Currently __dwc3_gadget_start_isoc must be called very shortly after
XferNotReady. Otherwise the frame number is outdated and start transfer
will fail, even with several retries.

DSTS provides the lower 14 bit of the frame number. Use it in combination
with the frame number provided by XferNotReady to guess the current frame
number. This will succeed unless more than one 14 rollover has happened
since XferNotReady.

Start transfer might still fail if the frame number is increased
immediately after DSTS is read. So retries are still needed.
Don't drop the current request if this happens. This way it is not lost and
can be used immediately to try again with the next frame number.

With this change, __dwc3_gadget_start_isoc is still not successfully in all
cases bit it increases the acceptable delay after XferNotReady
significantly.

Reviewed-by: Thinh Nguyen <thinhn@synopsys.com>
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
Signed-off-by: Michael Tretter <m.tretter@pengutronix.de>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:15 +03:00
Michael Grzeschik
ca14378560 usb: dwc3: gadget: add frame number mask
This patch adds a define DWC3_FRNUMBER_MASK for the commonly used
0x3fff mask and uses it.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:15 +03:00
Zqiang
7f2ca14d2f usb: gadget: function: printer: Interface is disabled and returns error
After the device is disconnected from the host side, the interface of
the device is reset. If the userspace operates the device again,
an error code should be returned.

Signed-off-by: Zqiang <qiang.zhang@windriver.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:15 +03:00
Ruslan Bilovol
a9cf871518 usb: gadget: f_uac2: fix AC Interface Header Descriptor wTotalLength
As per UAC2 spec (ch. 4.7.2), wTotalLength of AC Interface
Header Descriptor "includes the combined length of this
descriptor header and all Clock Source, Unit and Terminal
descriptors."

Thus add its size to its wTotalLength.

Also after recent changes wTotalLength is calculated
dynamically, update static definition of uac2_ac_header_descriptor
accordingly

Fixes: 132fcb4608 ("usb: gadget: Add Audio Class 2.0 Driver")
Signed-off-by: Ruslan Bilovol <ruslan.bilovol@gmail.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:15 +03:00
Roger Quadros
ec3966268c dt-bindings: usb: ti,keystone-dwc3.yaml: Improve schema
There were some review comments after the patch was integrated.
Address those.

Fixes: 1883a934e1 ("dt-bindings: usb: convert keystone-usb.txt to YAML")
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:15 +03:00
Florian Fainelli
1fa645b1c9 usb: bdc: Use devm_clk_get_optional()
The BDC clock is optional and we may get an -EPROBE_DEFER error code
which would not be propagated correctly, fix this by using
devm_clk_get_optional().

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Al Cooper <alcooperx@gmail.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:15 +03:00
Danesh Petigara
5fc453d7de usb: bdc: Halt controller on suspend
GISB bus error kernel panics have been observed during S2 transition
tests on the 7271t platform. The errors are a result of the BDC
interrupt handler trying to access BDC register space after the
system's suspend callbacks have completed.

Adding a suspend hook to the BDC driver that halts the controller before
S2 entry thus preventing unwanted access to the BDC register space during
this transition.

Signed-off-by: Danesh Petigara <danesh.petigara@broadcom.com>
Signed-off-by: Al Cooper <alcooperx@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:15 +03:00
Al Cooper
b10d33c4f0 usb: bdc: driver runs out of buffer descriptors on large ADB transfers
Version v1.0.40 of the Android host ADB software increased maximum
transfer sizes from 256K to 1M. Since the STB ADB gadget driver
requests only 16K at a time, the BDC driver ran out of buffer
descriptors (BDs) if the queuing happens faster than the incoming
16K transfers. This issue is fixed by doubling the number of BDs
that can be queued so that the entire 1M request can be queued
without running out of buffers.

Signed-off-by: Al Cooper <alcooperx@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:14 +03:00
Al Cooper
33d1c71832 usb: bdc: Adb shows offline after resuming from S2
On Android systems, After temporarily putting device to S2 by
short pressing the power button on the remote, the display turns
off. Then press the power button to turn the display back up. Adb
devices would show the devices is offline. It needs a physical
disconnect of the usb cable or power cycle to bring the device
back online. The device is operational otherwise.

The problem is that during S2 resume, the ADB gadget driver could
not link back with the BDC driver because the endpoint flags were
cleared. The fix is to clear the endpoint flags for the disconnect
case only and not for S2 exit.

Signed-off-by: Al Cooper <alcooperx@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:14 +03:00
Sasi Kumar
a95bdfd220 bdc: Fix bug causing crash after multiple disconnects
Multiple connects/disconnects can cause a crash on the second
disconnect. The driver had a problem where it would try to send
endpoint commands after it was disconnected which is not allowed
by the hardware. The fix is to only allow the endpoint commands
when the endpoint is connected. This will also fix issues that
showed up when using configfs to create gadgets.

Signed-off-by: Sasi Kumar <sasi.kumar@broadcom.com>
Signed-off-by: Al Cooper <alcooperx@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:14 +03:00
Al Cooper
4e3a765ba0 usb: bdc: Add compatible string for new style USB DT nodes
Add compatible string for some newer boards that only have this
as their match sting. Remove unused compatible string "brcm,bdc-v0.16".

Signed-off-by: Al Cooper <alcooperx@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:14 +03:00
Al Cooper
4e33ba7f82 dt-bindings: usb: bdc: Update compatible strings
Remove "brcm,bdc-v0.16" because it was never used on any system.
Add "brcm,bdc-udc-v2" which exists for any STB system with BDC.

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Al Cooper <alcooperx@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:14 +03:00
周琰杰 (Zhou Yanjie)
f7e764cba2 USB: PHY: JZ4770: Reformat the code to align it.
Reformat the code (add one level of indentation before the values),
to align the code in the macro definition section.

Tested-by: 周正 (Zhou Zheng) <sernia.zhou@foxmail.com>
Co-developed-by: 漆鹏振 (Qi Pengzhen) <aric.pzqi@ingenic.com>
Signed-off-by: 漆鹏振 (Qi Pengzhen) <aric.pzqi@ingenic.com>
Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:14 +03:00
周琰杰 (Zhou Yanjie)
2a6c0b82e6 USB: PHY: JZ4770: Add support for new Ingenic SoCs.
Add support for probing the phy-jz4770 driver on the JZ4780 SoC,
the X1000 SoC and the X1830 SoC from Ingenic.

Tested-by: 周正 (Zhou Zheng) <sernia.zhou@foxmail.com>
Co-developed-by: 漆鹏振 (Qi Pengzhen) <aric.pzqi@ingenic.com>
Signed-off-by: 漆鹏振 (Qi Pengzhen) <aric.pzqi@ingenic.com>
Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:14 +03:00
周琰杰 (Zhou Yanjie)
6e5478aeb3 USB: PHY: JZ4770: Unify code style and simplify code.
1.Modify the macro definition to unify "#define USBPCR_XXXX n"
  into the "#define USBPCR_XXXX (n << USBPCR_XXXX_LSB)" style,
  so as to unify the code style in the "jz4770_phy_init()" and
  simplify the code.
2.Remove unused macro definitions to simplify the code.

Tested-by: 周正 (Zhou Zheng) <sernia.zhou@foxmail.com>
Suggested-by: Paul Cercueil <paul@crapouillou.net>
Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:13 +03:00
周琰杰 (Zhou Yanjie)
4afd6fe4a3 dt-bindings: USB: Add bindings for new Ingenic SoCs.
Add the USB PHY bindings for the JZ4780 SoC, the X1000 SoC and
the X1830 SoC from Ingenic.

Tested-by: 周正 (Zhou Zheng) <sernia.zhou@foxmail.com>
Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:13 +03:00
Evgeny Novikov
2468c877da usb: gadget: net2280: fix memory leak on probe error handling paths
Driver does not release memory for device on error handling paths in
net2280_probe() when gadget_release() is not registered yet.

The patch fixes the bug like in other similar drivers.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Evgeny Novikov <novikov@ispras.ru>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:13 +03:00
Pawel Laszczak
b2aeb6da3d usb: cdns3: drd: simplify *switch_gadet and *switch_host
Patch split function cdns3_drd_switch_gadget and
cdns3_drd_switch_host into:
- cdns3_drd_host_on
- cdns3_drd_host_off
- cdns3_drd_gadget_on
- cdns3_drd_gadgett_off

These functions don't have any shared code so it's better to
have smaller, faster and easier functions.

Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Reviewed-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:13 +03:00
Pawel Laszczak
f41ca26b8b usb: cdns3: core: removed overwriting some error code
Some error code can be preserved, so we can remove overwriting
error code returned by some functions.

Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Reviewed-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:13 +03:00
Pawel Laszczak
5c2cf30f14 usb: cdns3: core: removed 'goto not_otg'
Patch removes 'goto not_otg' instruction from
cdns3_hw_role_state_machine function.

Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:13 +03:00
Pawel Laszczak
08c35dd3cc usb: cdns3: Added CDNS3_ID_PERIPHERAL and CDNS3_ID_HOST
Patch adds 2 definitions that make it easier to understand the code.

Reviewed-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:13 +03:00
Pawel Laszczak
245258495a usb: cdns3: drd: changed return type from int to bool
Patch changes return type from int to bool for
cdns3_is_host and cdns3_is_device functions.

Reviewed-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:13 +03:00
Pawel Laszczak
03cce68a82 usb: cdns3: drd: return IRQ_NONE explicitly.
IRQ_NONE can be returned indirect.

Reviewed-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:12 +03:00
Pawel Laszczak
ecf4f823fb usb: cnds3: drd: deleted !=
Patch deletes unnecessary != from condition statement in cdns3_drd_init
function.

Reviewed-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:12 +03:00
Pawel Laszczak
27afe16612 usb: cdns3: drd: removed not needed variables initialization
Patch remove some variables initialization from core.c and drd.c
file.

Reviewed-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:12 +03:00
Pawel Laszczak
b20aecff99 usb: cdns3: core: removed cdns3_get_current_role_driver function
Function is not used in driver so it can be removed.

Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Reviewed-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:12 +03:00
Peter Chen
95f5acfc4f usb: cdns3: gadget: always zeroed TRB buffer when enable endpoint
During the endpoint dequeue operation, it changes dequeued TRB as link
TRB, when the endpoint is disabled and re-enabled, the DMA fetches the
TRB before the link TRB, after it handles current TRB, the DMA pointer
will advance to the TRB after link TRB, but enqueue and dequene
variables don't know it due to no hardware interrupt at the time, when
the next TRB is added to link TRB position, the DMA will not handle
this TRB due to its pointer is already at the next TRB. See the trace
log like below:

file-storage-675   [001] d..1    86.585657: usb_ep_queue: ep0: req 00000000df9b3a4f length 0/0 sgs 0/0 stream 0 zsI status 0 --> 0
file-storage-675   [001] d..1    86.585663: cdns3_ep_queue: ep1out: req: 000000002ebce364, req buff 00000000f5bc96b4, length: 0/1024 zsi, status: -115, trb: [start:0, end:0: virt addr (null)], flags:0 SID: 0
file-storage-675   [001] d..1    86.585671: cdns3_prepare_trb: ep1out: trb 000000007f770303, dma buf: 0xbd195800, size: 1024, burst: 128 ctrl: 0x00000425 (C=1, T=0, ISP, IOC, Normal) SID:0 LAST_SID:0
file-storage-675   [001] d..1    86.585676: cdns3_ring:
            Ring contents for ep1out:
            Ring deq index: 0, trb: 000000007f770303 (virt), 0xc4003000 (dma)
            Ring enq index: 1, trb: 0000000049c1ba21 (virt), 0xc400300c (dma)
            free trbs: 38, CCS=1, PCS=1
            @0x00000000c4003000 bd195800 80020400 00000425
            @0x00000000c400300c c4003018 80020400 00001811
            @0x00000000c4003018 bcfcc000 0000001f 00000426
            @0x00000000c4003024 bcfce800 0000001f 00000426

	    ...

 irq/144-5b13000-698   [000] d...    87.619286: usb_gadget_giveback_request: ep1in: req 0000000031b832eb length 13/13 sgs 0/0 stream 0 zsI status 0 --> 0
    file-storage-675   [001] d..1    87.619287: cdns3_ep_queue: ep1out: req: 000000002ebce364, req buff 00000000f5bc96b4, length: 0/1024 zsi, status: -115, trb: [start:0, end:0: virt addr 0x80020400c400300c], flags:0 SID: 0
    file-storage-675   [001] d..1    87.619294: cdns3_prepare_trb: ep1out: trb 0000000049c1ba21, dma buf: 0xbd198000, size: 1024, burst: 128 ctrl: 0x00000425 (C=1, T=0, ISP, IOC, Normal) SID:0 LAST_SID:0
    file-storage-675   [001] d..1    87.619297: cdns3_ring:
                Ring contents for ep1out:
                Ring deq index: 1, trb: 0000000049c1ba21 (virt), 0xc400300c (dma)
                Ring enq index: 2, trb: 0000000059b34b67 (virt), 0xc4003018 (dma)
                free trbs: 38, CCS=1, PCS=1
                @0x00000000c4003000 bd195800 0000001f 00000427
                @0x00000000c400300c bd198000 80020400 00000425
                @0x00000000c4003018 bcfcc000 0000001f 00000426
                @0x00000000c4003024 bcfce800 0000001f 00000426
		...

    file-storage-675   [001] d..1    87.619305: cdns3_doorbell_epx: ep1out, ep_trbaddr c4003018
    file-storage-675   [001] ....    87.619308: usb_ep_queue: ep1out: req 000000002ebce364 length 0/1024 sgs 0/0 stream 0 zsI status -115 --> 0
 irq/144-5b13000-698   [000] d..1    87.619315: cdns3_epx_irq: IRQ for ep1out: 01000c80 TRBERR , ep_traddr: c4003018 ep_last_sid: 00000000 use_streams: 0
 irq/144-5b13000-698   [000] d..1    87.619395: cdns3_usb_irq: IRQ 00000008 = Hot Reset

Fixes: f616c3bda4 ("usb: cdns3: Fix dequeue implementation")
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-07-24 16:45:12 +03:00