All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/6] Add the Lantiq PEF2256 audio support
@ 2023-03-22 13:46 Herve Codina
  2023-03-22 13:46 ` [PATCH v3 1/6] dt-bindings: mfd: Add the Lantiq PEF2256 E1/T1/J1 framer Herve Codina
                   ` (11 more replies)
  0 siblings, 12 replies; 29+ messages in thread
From: Herve Codina @ 2023-03-22 13:46 UTC (permalink / raw)
  To: Herve Codina, Lee Jones, Rob Herring, Krzysztof Kozlowski,
	Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai
  Cc: linux-kernel, devicetree, alsa-devel, Christophe Leroy, Thomas Petazzoni

Hi,

This series adds support for audio using the Lantiq PEF2256 framer.

The Lantiq PEF2256 is a framer and line interface component designed to
fulfill all required interfacing between an analog E1/T1/J1 line and the
digital PCM system highway/H.100 bus.

The first part of this series (patches 1 to 4) adds the Lantiq PEF2256
driver core.
The second part (patches 5 to 7) adds the audio support using the Lantiq
PEF2256 driver core.

The consumer/provider relation between the codec and the driver core
allows to use the PEF2256 framer for other purpose than audio support.

Compared to the previous iteration
  https://lore.kernel.org/linux-kernel/20230316122741.577663-1-herve.codina@bootlin.com/
This v3 series mainly:
  - takes into account pef2256.c modifications suggested by Christophe.
  - fixes binding
  - Moves to MFD.
  - Merges MAINTAINERS entries

Best regards,
Herve Codina

Changes v2 -> v3
  - Patch 1
    Remove unneeded 'allOf' and quotes.
    Add several 'additionalProperties: false'
    Fix example (node name, interrupts and reg properties)
    Replace the lantiq,sysclk-rate-hz property by sclkr and sclkx clocks.
    Define 'lantiq,frame-format' property in top level.
    Move to MFD

  - Patch 2
    Fix some #define.
    Compact the register accessor helpers.
    Rework pef2256_get_version().
    Merge v1.2 and v2.x GCM setup functions into one pef2256_setup_gcm().
    Update comments, avoid duplicates and change some conditionals.
    Remove the carrier spinlock and use atomic_t.
    Make exported symbol consistent and use EXPORT_SYMBOL_GPL.
    Remove the no more needed pef2256_get_byphandle() and
    devm_pef2256_get_byphandle().
    Replace the lantiq,sysclk-rate-hz property by sclkr and sclkx clocks.
    Move to MFD

  - Patch 4
    Remove, merged with patch 7

  - Patch 4 (patch 5 in v2)
    Update title and description.
    Remove incorrect SPI reference.
    Remove the 'lantiq,pef2256' phandle.
    Fix commit log

  - Patch 5 (patch 6 in v2)
    Remove devm_pef2256_get_byphandle().
    Fix commit log

  - Patch 6 (patch 7 in v2)
    Merge v2 patch 4. One entry only for PEF2256

Changes v1 -> v2
  - Patch 2
    Remove duplicate const qualifiers.
    Add HAS_IOMEM as a dependency

  - Patch 3
    Fix a "Block quote ends without a blank line; unexpected unindent"
    syntax issue.

Herve Codina (6):
  dt-bindings: mfd: Add the Lantiq  PEF2256 E1/T1/J1 framer
  mfd: Add support for the Lantiq PEF2256 framer
  Documentation: sysfs: Document the Lantiq PEF2256 sysfs entry
  dt-bindings: sound: Add support for the Lantiq PEF2256 codec
  ASoC: codecs: Add support for the Lantiq PEF2256 codec
  MAINTAINERS: Add the Lantiq PEF2256 driver entry

 .../sysfs-bus-platform-devices-pef2256        |   12 +
 .../bindings/mfd/lantiq,pef2256.yaml          |  205 +++
 .../bindings/sound/lantiq,pef2256-codec.yaml  |   54 +
 MAINTAINERS                                   |   10 +
 drivers/mfd/Kconfig                           |   16 +
 drivers/mfd/Makefile                          |    1 +
 drivers/mfd/pef2256.c                         | 1355 +++++++++++++++++
 include/linux/mfd/pef2256.h                   |   28 +
 sound/soc/codecs/Kconfig                      |   14 +
 sound/soc/codecs/Makefile                     |    2 +
 sound/soc/codecs/pef2256-codec.c              |  390 +++++
 11 files changed, 2087 insertions(+)
 create mode 100644 Documentation/ABI/testing/sysfs-bus-platform-devices-pef2256
 create mode 100644 Documentation/devicetree/bindings/mfd/lantiq,pef2256.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/lantiq,pef2256-codec.yaml
 create mode 100644 drivers/mfd/pef2256.c
 create mode 100644 include/linux/mfd/pef2256.h
 create mode 100644 sound/soc/codecs/pef2256-codec.c

-- 
2.39.2


^ permalink raw reply	[flat|nested] 29+ messages in thread
* Re: [PATCH v3 2/6] mfd: Add support for the Lantiq PEF2256 framer
@ 2023-03-24  5:28 kernel test robot
  0 siblings, 0 replies; 29+ messages in thread
From: kernel test robot @ 2023-03-24  5:28 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp

:::::: 
:::::: Manual check reason: "low confidence bisect report"
:::::: 

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <167949286900.26.3992817728812049195@mailman-core.alsa-project.org>
References: <167949286900.26.3992817728812049195@mailman-core.alsa-project.org>
TO: "Herve Codina via Alsa-devel" <alsa-devel@alsa-project.org>
TO: Herve Codina <herve.codina@bootlin.com>
TO: Lee Jones <lee@kernel.org>
TO: Rob Herring <robh+dt@kernel.org>
TO: Krzysztof Kozlowski <krzk@kernel.org>
TO: Liam Girdwood <lgirdwood@gmail.com>
TO: Mark Brown <broonie@kernel.org>
TO: Jaroslav Kysela <perex@perex.cz>
TO: Takashi Iwai <tiwai@suse.com>
CC: linux-kernel@vger.kernel.org
CC: devicetree@vger.kernel.org
CC: alsa-devel@alsa-project.org
CC: Christophe Leroy <christophe.leroy@csgroup.eu>
CC: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

Hi Herve,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on lee-mfd/for-mfd-next]
[also build test WARNING on broonie-sound/for-next lee-leds/for-leds-next robh/for-next linus/master v6.3-rc3 next-20230323]
[cannot apply to lee-mfd/for-mfd-fixes]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Herve-Codina-via-Alsa-devel/mfd-Add-support-for-the-Lantiq-PEF2256-framer/20230322-215208
base:   https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git for-mfd-next
patch link:    https://lore.kernel.org/r/167949286900.26.3992817728812049195%40mailman-core.alsa-project.org
patch subject: [PATCH v3 2/6] mfd: Add support for the Lantiq PEF2256 framer
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: openrisc-randconfig-s033-20230324 (https://download.01.org/0day-ci/archive/20230324/202303241313.pYnyzYXe-lkp@intel.com/config)
compiler: or1k-linux-gcc (GCC) 12.1.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.4-39-gce1a6720-dirty
        # https://github.com/intel-lab-lkp/linux/commit/d60948895815b59306d870e7c189741b7d14d5e2
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Herve-Codina-via-Alsa-devel/mfd-Add-support-for-the-Lantiq-PEF2256-framer/20230322-215208
        git checkout d60948895815b59306d870e7c189741b7d14d5e2
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=openrisc olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=openrisc SHELL=/bin/bash drivers/mfd/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/r/202303241313.pYnyzYXe-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/mfd/pef2256.c:1192:23: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void *[noderef] regs @@     got void [noderef] __iomem * @@
   drivers/mfd/pef2256.c:1192:23: sparse:     expected void *[noderef] regs
   drivers/mfd/pef2256.c:1192:23: sparse:     got void [noderef] __iomem *
>> drivers/mfd/pef2256.c:303:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:303:38: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:303:38: sparse:     got void *
>> drivers/mfd/pef2256.c:303:24: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:303:24: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:303:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:303:38: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:303:38: sparse:     got void *
>> drivers/mfd/pef2256.c:303:24: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:303:24: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:303:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:303:38: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:303:38: sparse:     got void *
>> drivers/mfd/pef2256.c:303:24: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:303:24: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
>> drivers/mfd/pef2256.c:303:24: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:308:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:308:37: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:308:37: sparse:     got void *
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
   drivers/mfd/pef2256.c:308:23: sparse: sparse: dereference of noderef expression
>> drivers/mfd/pef2256.c:303:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void * @@
   drivers/mfd/pef2256.c:303:38: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/mfd/pef2256.c:303:38: sparse:     got void *
   drivers/mfd/pef2256.c:303:24: sparse: sparse: too many warnings

vim +1192 drivers/mfd/pef2256.c

d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1176  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1177  static int pef2256_probe(struct platform_device *pdev)
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1178  {
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1179  	struct device_node *np = pdev->dev.of_node;
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1180  	unsigned long sclkr_rate, sclkx_rate;
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1181  	struct pef2256 *pef2256;
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1182  	int ret;
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1183  	int irq;
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1184  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1185  	pef2256 = devm_kzalloc(&pdev->dev, sizeof(*pef2256), GFP_KERNEL);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1186  	if (!pef2256)
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1187  		return -ENOMEM;
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1188  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1189  	pef2256->dev = &pdev->dev;
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1190  	ATOMIC_INIT_NOTIFIER_HEAD(&pef2256->event_notifier_list);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1191  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22 @1192  	pef2256->regs = devm_platform_ioremap_resource(pdev, 0);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1193  	if (IS_ERR(pef2256->regs))
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1194  		return PTR_ERR(pef2256->regs);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1195  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1196  	pef2256->mclk = devm_clk_get_enabled(&pdev->dev, "mclk");
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1197  	if (IS_ERR(pef2256->mclk))
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1198  		return PTR_ERR(pef2256->mclk);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1199  	dev_dbg(pef2256->dev, "mclk %lu Hz\n", clk_get_rate(pef2256->mclk));
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1200  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1201  	pef2256->sclkr = devm_clk_get_enabled(&pdev->dev, "sclkr");
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1202  	if (IS_ERR(pef2256->sclkr))
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1203  		return PTR_ERR(pef2256->sclkr);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1204  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1205  	pef2256->sclkx = devm_clk_get_enabled(&pdev->dev, "sclkx");
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1206  	if (IS_ERR(pef2256->sclkx))
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1207  		return PTR_ERR(pef2256->sclkx);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1208  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1209  	/*
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1210  	 * Both SCLKR (receive) and SCLKX (transmit) must have the same rate,
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1211  	 * stored as sysclk_rate.
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1212  	 * The exact value will be checked at pef2256_check_rates()
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1213  	 */
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1214  	sclkr_rate = clk_get_rate(pef2256->sclkr);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1215  	sclkx_rate = clk_get_rate(pef2256->sclkx);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1216  	dev_dbg(pef2256->dev, "sclkr %lu Hz\n", sclkr_rate);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1217  	dev_dbg(pef2256->dev, "sclkx %lu Hz\n", sclkx_rate);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1218  	if (sclkr_rate != sclkx_rate) {
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1219  		dev_err(pef2256->dev, "clk rate mismatch. sclkr %lu Hz, sclkx %lu Hz\n",
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1220  			sclkr_rate, sclkx_rate);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1221  		return -EINVAL;
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1222  	}
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1223  	pef2256->sysclk_rate = sclkr_rate;
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1224  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1225  	/* Reset the component. The MCLK clock must be active during reset */
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1226  	pef2256->reset_gpio = devm_gpiod_get_optional(&pdev->dev, "reset", GPIOD_OUT_LOW);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1227  	if (IS_ERR(pef2256->reset_gpio))
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1228  		return PTR_ERR(pef2256->reset_gpio);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1229  	if (pef2256->reset_gpio) {
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1230  		gpiod_set_value_cansleep(pef2256->reset_gpio, 1);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1231  		udelay(10);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1232  		gpiod_set_value_cansleep(pef2256->reset_gpio, 0);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1233  		udelay(10);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1234  	}
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1235  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1236  	pef2256->version = pef2256_get_version(pef2256);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1237  	if (pef2256->version == PEF2256_VERSION_UNKNOWN)
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1238  		return -ENODEV;
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1239  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1240  	ret = pef2556_of_parse(pef2256, np);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1241  	if (ret)
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1242  		return ret;
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1243  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1244  	/* Disable interrupts */
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1245  	pef2256_write8(pef2256, PEF2256_IMR0, 0xff);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1246  	pef2256_write8(pef2256, PEF2256_IMR1, 0xff);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1247  	pef2256_write8(pef2256, PEF2256_IMR2, 0xff);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1248  	pef2256_write8(pef2256, PEF2256_IMR3, 0xff);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1249  	pef2256_write8(pef2256, PEF2256_IMR4, 0xff);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1250  	pef2256_write8(pef2256, PEF2256_IMR5, 0xff);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1251  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1252  	/* Clear any pending interrupts */
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1253  	pef2256_read8(pef2256, PEF2256_ISR0);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1254  	pef2256_read8(pef2256, PEF2256_ISR1);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1255  	pef2256_read8(pef2256, PEF2256_ISR2);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1256  	pef2256_read8(pef2256, PEF2256_ISR3);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1257  	pef2256_read8(pef2256, PEF2256_ISR4);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1258  	pef2256_read8(pef2256, PEF2256_ISR5);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1259  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1260  	irq = platform_get_irq(pdev, 0);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1261  	if (irq < 0)
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1262  		return irq;
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1263  	ret = devm_request_irq(pef2256->dev, irq, pef2256_irq_handler, 0, "pef2256", pef2256);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1264  	if (ret < 0)
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1265  		return ret;
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1266  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1267  	pef2256_reset_pinmux(pef2256);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1268  	ret = pef2256_register_pinctrl(pef2256);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1269  	if (ret)
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1270  		return ret;
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1271  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1272  	/*
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1273  	 * We are going to reset the E1 lines during setup() call and the ISR2
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1274  	 * interrupt used to detect the carrier state changed is masked.
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1275  	 * It is time to initialize our internal carrier state flag.
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1276  	 */
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1277  	atomic_set(&pef2256->carrier, 0);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1278  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1279  	ret = pef2256_setup(pef2256);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1280  	if (ret)
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1281  		return ret;
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1282  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1283  	platform_set_drvdata(pdev, pef2256);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1284  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1285  	ret = sysfs_create_group(&pef2256->dev->kobj, &pef2256_attribute_group);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1286  	if (ret < 0) {
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1287  		dev_err(pef2256->dev, "sysfs registration failed (%d)\n", ret);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1288  		platform_set_drvdata(pdev, NULL);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1289  		return ret;
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1290  	}
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1291  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1292  	ret = devm_of_platform_populate(pef2256->dev);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1293  	if (ret < 0) {
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1294  		dev_err(pef2256->dev, "platform populate failed (%d)\n", ret);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1295  		platform_set_drvdata(pdev, NULL);
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1296  		return ret;
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1297  	}
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1298  
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1299  	return 0;
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1300  }
d60948895815b5 Herve Codina via Alsa-devel 2023-03-22  1301  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2023-03-26 18:22 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-22 13:46 [PATCH v3 0/6] Add the Lantiq PEF2256 audio support Herve Codina
2023-03-22 13:46 ` [PATCH v3 1/6] dt-bindings: mfd: Add the Lantiq PEF2256 E1/T1/J1 framer Herve Codina
2023-03-22 21:58   ` Krzysztof Kozlowski
2023-03-22 13:46 ` Herve Codina via Alsa-devel
2023-03-22 13:46 ` [PATCH v3 2/6] mfd: Add support for the Lantiq PEF2256 framer Herve Codina via Alsa-devel
2023-03-26 18:22   ` kernel test robot
2023-03-22 13:46 ` Herve Codina
2023-03-23  7:30   ` Krzysztof Kozlowski
2023-03-23  8:31     ` Herve Codina
2023-03-23  8:31     ` Herve Codina via Alsa-devel
2023-03-26 15:49   ` kernel test robot
2023-03-22 13:46 ` [PATCH v3 3/6] Documentation: sysfs: Document the Lantiq PEF2256 sysfs entry Herve Codina
2023-03-22 13:46 ` Herve Codina via Alsa-devel
2023-03-22 13:46 ` [PATCH v3 4/6] dt-bindings: sound: Add support for the Lantiq PEF2256 codec Herve Codina
2023-03-22 21:59   ` Krzysztof Kozlowski
2023-03-23  7:27     ` Herve Codina
2023-03-23  7:31       ` Krzysztof Kozlowski
2023-03-23  7:31         ` Krzysztof Kozlowski
2023-03-23  8:10         ` Herve Codina via Alsa-devel
2023-03-23  8:10         ` Herve Codina
2023-03-26 12:21           ` Krzysztof Kozlowski
2023-03-26 12:21             ` Krzysztof Kozlowski
2023-03-23  7:27     ` Herve Codina via Alsa-devel
2023-03-22 13:46 ` Herve Codina via Alsa-devel
2023-03-22 13:46 ` [PATCH v3 5/6] ASoC: codecs: " Herve Codina
2023-03-22 13:46 ` Herve Codina via Alsa-devel
2023-03-22 13:46 ` [PATCH v3 6/6] MAINTAINERS: Add the Lantiq PEF2256 driver entry Herve Codina
2023-03-22 13:46 ` Herve Codina via Alsa-devel
2023-03-24  5:28 [PATCH v3 2/6] mfd: Add support for the Lantiq PEF2256 framer kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.