Alsa-devel
  Threads by month 
                
            - ----- 2025 -----
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2024 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2023 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2022 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2021 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2020 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2019 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2018 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2017 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2016 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2015 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2014 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2013 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2012 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2011 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2010 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2009 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2008 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2007 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 
January 2023
- 175 participants
 - 321 discussions
 
                    
                        Wrap the hw_ptr using the total position of the slave hw_ptr, including
boundary wraps. Otherwise, small errors can creep in due to residuals
(when boundary is not a multiple of period size) and which can
accumulate.
Signed-off-by: Alan Young <consult.awy(a)gmail.com>
Fixes: 7570e5d7 ("pcm: rate: fix the hw_ptr update until the boundary available")
---
 src/pcm/pcm_rate.c | 54 ++++++++++++++++++++++++++++++----------------
 1 file changed, 36 insertions(+), 18 deletions(-)
diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c
index c8076859..a29fc5a9 100644
--- a/src/pcm/pcm_rate.c
+++ b/src/pcm/pcm_rate.c
@@ -52,6 +52,7 @@ struct _snd_pcm_rate {
 	snd_pcm_generic_t gen;
 	snd_pcm_uframes_t appl_ptr, hw_ptr, last_slave_hw_ptr;
 	snd_pcm_uframes_t last_commit_ptr;
+	u_int64_t slave_hw_ptr_wrap;
 	snd_pcm_uframes_t orig_avail_min;
 	snd_pcm_sw_params_t sw_params;
 	snd_pcm_format_t sformat;
@@ -562,6 +563,8 @@ static int snd_pcm_rate_init(snd_pcm_t *pcm)
 	if (rate->ops.reset)
 		rate->ops.reset(rate->obj);
 	rate->last_commit_ptr = 0;
+	rate->last_slave_hw_ptr = 0;
+	rate->slave_hw_ptr_wrap = 0;
 	rate->start_pending = 0;
 	return 0;
 }
@@ -638,33 +641,48 @@ snd_pcm_rate_read_areas1(snd_pcm_t *pcm,
 static inline void snd_pcm_rate_sync_hwptr0(snd_pcm_t *pcm, snd_pcm_uframes_t slave_hw_ptr)
 {
 	snd_pcm_rate_t *rate;
-	snd_pcm_sframes_t slave_hw_ptr_diff;
-	snd_pcm_sframes_t last_slave_hw_ptr_frac;
+	snd_pcm_uframes_t new_hw_ptr;
+	snd_pcm_uframes_t slave_residual;
 
 	if (pcm->stream != SND_PCM_STREAM_PLAYBACK)
 		return;
 
 	rate = pcm->private_data;
-	slave_hw_ptr_diff = pcm_frame_diff(slave_hw_ptr, rate->last_slave_hw_ptr, rate->gen.slave->boundary);
-	if (slave_hw_ptr_diff == 0)
+	if (slave_hw_ptr == rate->last_slave_hw_ptr)
 		return;
-	last_slave_hw_ptr_frac = rate->last_slave_hw_ptr % rate->gen.slave->period_size;
-	/* While handling fraction part fo slave period, rounded value will be
-	 * introduced by input_frames().
-	 * To eliminate rounding issue on rate->hw_ptr, subtract last rounded
-	 * value from rate->hw_ptr and add new rounded value of present
-	 * slave_hw_ptr fraction part to rate->hw_ptr. Hence,
-	 * rate->hw_ptr += [ (no. of updated slave periods * pcm rate period size) -
-	 * 	fractional part of last_slave_hw_ptr rounded value +
-	 * 	fractional part of updated slave hw ptr's rounded value ]
+
+	/*
+	 * Our hw_ptr may wrap at a different time to that of the slave as the
+	 * number of period / boundary may differ. It is essential that our hw_ptr
+	 * wraps at the correct point, along with our appl_ptr. Otherwise the
+	 * avail calculation will be incorrect.
+	 *
+	 * Track the number of slave hw_ptr boundary wraps and use that to calculate
+	 * our new_hw_ptr from the total number of samples converted.
 	 */
-	rate->hw_ptr += (
-			(((last_slave_hw_ptr_frac + slave_hw_ptr_diff) / rate->gen.slave->period_size) * pcm->period_size) -
-			rate->ops.input_frames(rate->obj, last_slave_hw_ptr_frac) +
-			rate->ops.input_frames(rate->obj, (last_slave_hw_ptr_frac + slave_hw_ptr_diff) % rate->gen.slave->period_size));
+	if (slave_hw_ptr < rate->last_slave_hw_ptr) {
+		rate->slave_hw_ptr_wrap += rate->gen.slave->boundary;
+	}
 	rate->last_slave_hw_ptr = slave_hw_ptr;
 
-	rate->hw_ptr %= pcm->boundary;
+	/*
+	 * Calculate rate->hw_ptr using total number of frames consumed by slave hw_ptr,
+	 * including any boundary wraps.
+	 */
+	if (rate->slave_hw_ptr_wrap) {
+		/*
+		 * Restrict explicit 64-bit calculations to case where rate->slave_hw_ptr_wrap
+		 * is non-zero, which will only happen in 32-bit environments.
+		 */
+		u_int64_t wrapped_slave_hw_ptr = slave_hw_ptr + rate->slave_hw_ptr_wrap;
+		new_hw_ptr = ((wrapped_slave_hw_ptr / rate->gen.slave->period_size) * pcm->period_size) % pcm->boundary;
+		slave_residual = wrapped_slave_hw_ptr % rate->gen.slave->period_size;
+	} else {
+		new_hw_ptr = (slave_hw_ptr / rate->gen.slave->period_size) * pcm->period_size;
+		slave_residual = slave_hw_ptr % rate->gen.slave->period_size;
+	}
+	new_hw_ptr += rate->ops.input_frames(rate->obj, slave_residual);
+	rate->hw_ptr = new_hw_ptr % pcm->boundary;
 }
 
 static inline void snd_pcm_rate_sync_hwptr(snd_pcm_t *pcm)
-- 
2.25.1
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            3
                            
                          
                          
                            
    
                          
                        
                    16 Feb '23
                    
                        Hi,
This series adds support for audio using the QMC controller available in
some Freescale PowerQUICC SoCs.
This series contains three parts in order to show the different blocks
hierarchy and their usage in this support.
The first one is related to TSA (Time Slot Assigner).
The TSA handles the data present at the pin level (TDM with up to 64
time slots) and dispatchs them to one or more serial controller (SCC).
The second is related to QMC (QUICC Multichannel Controller).
The QMC handles the data at the serial controller (SCC) level and splits
again the data to creates some virtual channels.
The last one is related to the audio component (QMC audio).
It is the glue between the QMC controller and the ASoC component. It
handles one or more QMC virtual channels and creates one DAI per QMC
virtual channels handled.
Compared to the previous iteration
  https://lore.kernel.org/linux-kernel/20230113103759.327698-1-herve.codina@b…
this v4 series mainly:
  - updates code comment format (feedback received on v2 series and
    forgot to update in v3),
  - fixes bindings,
  - Replaces the fsl,tsa phandle and the fsl,tsa-cell-id property by a
    fsl,tsa-serial phandle and update the TSA related API,
  - Adds some missing lock in tsa_serial_connect() and
    tsa_serial_disconnect().
Best regards,
Herve Codina
Changes v3 -> v4
  - patches 2, 6 and 9
    Update code comment format.
  - patch 1
    Fix some description formats.
    Add 'additionalProperties: false' in subnode.
    Move fsl,mode to fsl,diagnostic-mode.
    Change clocks and clock-names properties.
    Add '#serial-cells' property related to the newly introduced
    fsl,tsa-serial phandle.
  - patch 2
    Move fsl,mode to fsl,diagnostic-mode.
    Replace the	fsl,tsa phandle and the	fsl,tsa-cell-id	property by a
    fsl,tsa-serial phandle and update the related API.
    Add missing locks.
  - patch 5
    Fix some description format.
    Replace the fsl,tsa phandle and the fsl,tsa-cell-id property by a
    fsl,tsa-serial phandle.
    Rename fsl,mode to fsl,operational-mode and update its description.
  - patch 6
    Replace the	fsl,tsa phandle and the	fsl,tsa-cell-id	property by a
    fsl,tsa-serial phandle and use the TSA updated API.
    Rename fsl,mode to fsl,operational-mode.
  - patch 8
    Add 'Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski(a)linaro.org>'
Changes v2 -> v3
  - All bindings
    Rename fsl-tsa.h to fsl,tsa.h
    Add missing vendor prefix
    Various fixes (quotes, node names, upper/lower case)
  - patches 1 and 2 (TSA binding specific)
    Remove 'reserved' values in the routing tables
    Remove fsl,grant-mode
    Add a better description for 'fsl,common-rxtx-pins'
    Fix clocks/clocks-name handling against fsl,common-rxtx-pins
    Add information related to the delays unit
    Removed FSL_CPM_TSA_NBCELL
    Fix license in binding header file fsl,tsa.h
  - patches 5 and 6 (QMC binding specific)
    Remove fsl,cpm-command property
    Add interrupt property constraint
  - patches 8 and 9 (QMC audio binding specific)
    Remove 'items' in compatible property definition
    Add missing 'dai-common.yaml' reference
    Fix the qmc_chan phandle definition
  - patch 2 and 6
    Use io{read,write}be{32,16}
    Change commit subjects and logs
  - patch 4
    Add 'Acked-by: Christophe Leroy <christophe.leroy(a)csgroup.eu>'
Changes v1 -> v2:
  - patch 2 and 6
    Fix kernel test robot errors
  - other patches
    No changes
Herve Codina (10):
  dt-bindings: soc: fsl: cpm_qe: Add TSA controller
  soc: fsl: cpm1: Add support for TSA
  MAINTAINERS: add the Freescale TSA controller entry
  powerpc/8xx: Use a larger CPM1 command check mask
  dt-bindings: soc: fsl: cpm_qe: Add QMC controller
  soc: fsl: cmp1: Add support for QMC
  MAINTAINERS: add the Freescale QMC controller entry
  dt-bindings: sound: Add support for QMC audio
  ASoC: fsl: Add support for QMC audio
  MAINTAINERS: add the Freescale QMC audio entry
 .../bindings/soc/fsl/cpm_qe/fsl,qmc.yaml      |  167 ++
 .../bindings/soc/fsl/cpm_qe/fsl,tsa.yaml      |  261 +++
 .../bindings/sound/fsl,qmc-audio.yaml         |  117 ++
 MAINTAINERS                                   |   25 +
 arch/powerpc/platforms/8xx/cpm1.c             |    2 +-
 drivers/soc/fsl/qe/Kconfig                    |   23 +
 drivers/soc/fsl/qe/Makefile                   |    2 +
 drivers/soc/fsl/qe/qmc.c                      | 1533 +++++++++++++++++
 drivers/soc/fsl/qe/tsa.c                      |  864 ++++++++++
 drivers/soc/fsl/qe/tsa.h                      |   42 +
 include/dt-bindings/soc/fsl,tsa.h             |   13 +
 include/soc/fsl/qe/qmc.h                      |   71 +
 sound/soc/fsl/Kconfig                         |    9 +
 sound/soc/fsl/Makefile                        |    2 +
 sound/soc/fsl/fsl_qmc_audio.c                 |  735 ++++++++
 15 files changed, 3865 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/soc/fsl/cpm_qe/fsl,qmc.yaml
 create mode 100644 Documentation/devicetree/bindings/soc/fsl/cpm_qe/fsl,tsa.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/fsl,qmc-audio.yaml
 create mode 100644 drivers/soc/fsl/qe/qmc.c
 create mode 100644 drivers/soc/fsl/qe/tsa.c
 create mode 100644 drivers/soc/fsl/qe/tsa.h
 create mode 100644 include/dt-bindings/soc/fsl,tsa.h
 create mode 100644 include/soc/fsl/qe/qmc.h
 create mode 100644 sound/soc/fsl/fsl_qmc_audio.c
-- 
2.39.0
                    
                  
                  
                          
                            
                            6
                            
                          
                          
                            
                            22
                            
                          
                          
                            
    
                          
                        
                    14 Feb '23
                    
                        Correct many spelling errors in Documentation/ as reported by codespell.
Maintainers of specific kernel subsystems are only Cc-ed on their
respective patches, not the entire series. [if all goes well]
These patches are based on linux-next-20230125.
 [PATCH 01/35] Documentation: arm64: correct spelling
 [PATCH 02/35] Documentation: arm: correct spelling
 [PATCH 03/35] Documentation: block: correct spelling
 [PATCH 04/35] Documentation: bpf: correct spelling
 [PATCH 05/35] Documentation: core-api: correct spelling
 [PATCH 06/35] Documentation: fault-injection: correct spelling
 [PATCH 07/35] Documentation: fb: correct spelling
 [PATCH 08/35] Documentation: features: correct spelling
 [PATCH 09/35] Documentation: firmware-guide/acpi: correct spelling
 [PATCH 10/35] Documentation: hid: correct spelling
 [PATCH 11/35] Documentation: i2c: correct spelling
 [PATCH 12/35] Documentation: input: correct spelling
 [PATCH 13/35] Documentation: isdn: correct spelling
 [PATCH 14/35] Documentation: leds: correct spelling
 [PATCH 15/35] Documentation: litmus-tests: correct spelling
 [PATCH 16/35] Documentation: livepatch: correct spelling
 [PATCH 17/35] Documentation: locking: correct spelling
 [PATCH 18/35] Documentation: mm: correct spelling
 [PATCH 19/35] Documentation: openrisc: correct spelling
 [PATCH 20/35] Documentation: PCI: correct spelling
 [PATCH 21/35] Documentation: powerpc: correct spelling
 [PATCH 22/35] Documentation: power: correct spelling
 [PATCH 23/35] Documentation: s390: correct spelling
 [PATCH 24/35] Documentation: scheduler: correct spelling
 [PATCH 25/35] Documentation: security: correct spelling
 [PATCH 26/35] Documentation: sound: correct spelling
 [PATCH 27/35] Documentation: spi: correct spelling
 [PATCH 28/35] Documentation: target: correct spelling
 [PATCH 29/35] Documentation: timers: correct spelling
 [PATCH 30/35] Documentation: tools/rtla: correct spelling
 [PATCH 31/35] Documentation: trace: correct spelling
 [PATCH 32/35] Documentation: usb: correct spelling
 [PATCH 33/35] Documentation: w1: correct spelling
 [PATCH 34/35] Documentation: x86: correct spelling
 [PATCH 35/35] Documentation: xtensa: correct spelling
 Documentation/PCI/endpoint/pci-vntb-howto.rst                    |    2 -
 Documentation/PCI/msi-howto.rst                                  |    2 -
 Documentation/arm/arm.rst                                        |    2 -
 Documentation/arm/ixp4xx.rst                                     |    4 +-
 Documentation/arm/keystone/knav-qmss.rst                         |    2 -
 Documentation/arm/stm32/stm32-dma-mdma-chaining.rst              |    6 +--
 Documentation/arm/sunxi/clocks.rst                               |    2 -
 Documentation/arm/swp_emulation.rst                              |    2 -
 Documentation/arm/tcm.rst                                        |    2 -
 Documentation/arm/vlocks.rst                                     |    2 -
 Documentation/arm64/booting.rst                                  |    2 -
 Documentation/arm64/elf_hwcaps.rst                               |    2 -
 Documentation/arm64/sve.rst                                      |    4 +-
 Documentation/block/data-integrity.rst                           |    2 -
 Documentation/bpf/libbpf/libbpf_naming_convention.rst            |    6 +--
 Documentation/bpf/map_xskmap.rst                                 |    2 -
 Documentation/bpf/ringbuf.rst                                    |    4 +-
 Documentation/bpf/verifier.rst                                   |    2 -
 Documentation/core-api/packing.rst                               |    2 -
 Documentation/core-api/padata.rst                                |    2 -
 Documentation/fault-injection/fault-injection.rst                |    2 -
 Documentation/fb/sm712fb.rst                                     |    2 -
 Documentation/fb/sstfb.rst                                       |    2 -
 Documentation/features/core/thread-info-in-task/arch-support.txt |    2 -
 Documentation/firmware-guide/acpi/acpi-lid.rst                   |    2 -
 Documentation/firmware-guide/acpi/namespace.rst                  |    2 -
 Documentation/hid/hid-alps.rst                                   |    2 -
 Documentation/hid/hid-bpf.rst                                    |    2 -
 Documentation/hid/hiddev.rst                                     |    2 -
 Documentation/hid/hidraw.rst                                     |    2 -
 Documentation/hid/intel-ish-hid.rst                              |    2 -
 Documentation/i2c/gpio-fault-injection.rst                       |    2 -
 Documentation/i2c/smbus-protocol.rst                             |    2 -
 Documentation/input/devices/iforce-protocol.rst                  |    2 -
 Documentation/input/multi-touch-protocol.rst                     |    2 -
 Documentation/isdn/interface_capi.rst                            |    2 -
 Documentation/isdn/m_isdn.rst                                    |    2 -
 Documentation/leds/leds-qcom-lpg.rst                             |    4 +-
 Documentation/litmus-tests/README                                |    2 -
 Documentation/livepatch/reliable-stacktrace.rst                  |    2 -
 Documentation/locking/lockdep-design.rst                         |    4 +-
 Documentation/locking/locktorture.rst                            |    2 -
 Documentation/locking/locktypes.rst                              |    2 -
 Documentation/locking/preempt-locking.rst                        |    2 -
 Documentation/mm/hmm.rst                                         |    4 +-
 Documentation/mm/hwpoison.rst                                    |    2 -
 Documentation/openrisc/openrisc_port.rst                         |    4 +-
 Documentation/power/suspend-and-interrupts.rst                   |    2 -
 Documentation/powerpc/kasan.txt                                  |    2 -
 Documentation/powerpc/papr_hcalls.rst                            |    2 -
 Documentation/powerpc/qe_firmware.rst                            |    4 +-
 Documentation/powerpc/vas-api.rst                                |    4 +-
 Documentation/s390/pci.rst                                       |    4 +-
 Documentation/s390/vfio-ccw.rst                                  |    2 -
 Documentation/scheduler/sched-bwc.rst                            |    2 -
 Documentation/scheduler/sched-energy.rst                         |    4 +-
 Documentation/security/digsig.rst                                |    4 +-
 Documentation/security/keys/core.rst                             |    2 -
 Documentation/security/secrets/coco.rst                          |    2 -
 Documentation/sound/alsa-configuration.rst                       |    8 ++--
 Documentation/sound/cards/audigy-mixer.rst                       |    2 -
 Documentation/sound/cards/maya44.rst                             |    2 -
 Documentation/sound/cards/sb-live-mixer.rst                      |    2 -
 Documentation/sound/designs/jack-controls.rst                    |    2 -
 Documentation/sound/designs/seq-oss.rst                          |    2 -
 Documentation/sound/hd-audio/notes.rst                           |    2 -
 Documentation/spi/pxa2xx.rst                                     |   12 +++---
 Documentation/spi/spi-lm70llp.rst                                |    2 -
 Documentation/spi/spi-summary.rst                                |    2 -
 Documentation/target/tcmu-design.rst                             |    2 -
 Documentation/timers/hrtimers.rst                                |    2 -
 Documentation/tools/rtla/rtla-timerlat-top.rst                   |    2 -
 Documentation/trace/coresight/coresight-etm4x-reference.rst      |    2 -
 Documentation/trace/events.rst                                   |    6 +--
 Documentation/trace/fprobe.rst                                   |    2 -
 Documentation/trace/ftrace-uses.rst                              |    2 -
 Documentation/trace/hwlat_detector.rst                           |    2 -
 Documentation/trace/rv/runtime-verification.rst                  |    2 -
 Documentation/trace/uprobetracer.rst                             |    2 -
 Documentation/usb/chipidea.rst                                   |   19 +++++-----
 Documentation/usb/gadget-testing.rst                             |    2 -
 Documentation/usb/mass-storage.rst                               |    2 -
 Documentation/w1/w1-netlink.rst                                  |    2 -
 Documentation/x86/boot.rst                                       |    2 -
 Documentation/x86/buslock.rst                                    |    2 -
 Documentation/x86/mds.rst                                        |    2 -
 Documentation/x86/resctrl.rst                                    |    2 -
 Documentation/x86/sgx.rst                                        |    2 -
 Documentation/xtensa/atomctl.rst                                 |    2 -
 89 files changed, 124 insertions(+), 123 deletions(-)
Cc: Jonathan Corbet <corbet(a)lwn.net>
Cc: Catalin Marinas <catalin.marinas(a)arm.com>
Cc: Will Deacon <will(a)kernel.org>
Cc: Russell King <linux(a)armlinux.org.uk>
Cc: Jens Axboe <axboe(a)kernel.dk>
Cc: Andrii Nakryiko <andrii(a)kernel.org>
Cc: Alexei Starovoitov <ast(a)kernel.org>
Cc: Daniel Borkmann <daniel(a)iogearbox.net>
Cc: Vladimir Oltean <olteanv(a)gmail.com>
Cc: Steffen Klassert <steffen.klassert(a)secunet.com>
Cc: Daniel Jordan <daniel.m.jordan(a)oracle.com>
Cc: Akinobu Mita <akinobu.mita(a)gmail.com>
Cc: Helge Deller <deller(a)gmx.de>
Cc: "Rafael J. Wysocki" <rafael(a)kernel.org>
Cc: Jiri Kosina <jikos(a)kernel.org>
Cc: Benjamin Tissoires <benjamin.tissoires(a)redhat.com>
Cc: Srinivas Pandruvada <srinivas.pandruvada(a)linux.intel.com>
Cc: Wolfram Sang <wsa(a)kernel.org>
Cc: Dmitry Torokhov <dmitry.torokhov(a)gmail.com>
Cc: Henrik Rydberg <rydberg(a)bitmath.org>
Cc: Karsten Keil <isdn(a)linux-pingi.de>
Cc: Pavel Machek <pavel(a)ucw.cz>
Cc: Lee Jones <lee(a)kernel.org>
Cc: Josh Poimboeuf <jpoimboe(a)kernel.org>
Cc: Miroslav Benes <mbenes(a)suse.cz>
Cc: Petr Mladek <pmladek(a)suse.com>
Cc: Peter Zijlstra <peterz(a)infradead.org>
Cc: Ingo Molnar <mingo(a)redhat.com>
Cc: Jérôme Glisse <jglisse(a)redhat.com>
Cc: Naoya Horiguchi <naoya.horiguchi(a)nec.com>
Cc: Miaohe Lin <linmiaohe(a)huawei.com>
Cc: Jonas Bonn <jonas(a)southpole.se>
Cc: Stefan Kristiansson <stefan.kristiansson(a)saunalahti.fi>
Cc: Stafford Horne <shorne(a)gmail.com>
Cc: Bjorn Helgaas <bhelgaas(a)google.com>
Cc: Lorenzo Pieralisi <lpieralisi(a)kernel.org>
Cc: Marc Zyngier <maz(a)kernel.org>
Cc: Michael Ellerman <mpe(a)ellerman.id.au>
Cc: Len Brown <len.brown(a)intel.com>
Cc: Heiko Carstens <hca(a)linux.ibm.com>
Cc: Vasily Gorbik <gor(a)linux.ibm.com>
Cc: Alexander Gordeev <agordeev(a)linux.ibm.com>
Cc: Juri Lelli <juri.lelli(a)redhat.com>
Cc: Vincent Guittot <vincent.guittot(a)linaro.org>
Cc: David Howells <dhowells(a)redhat.com>
Cc: Jarkko Sakkinen <jarkko(a)kernel.org>
Cc: Paul Moore <paul(a)paul-moore.com>
Cc: James Morris <jmorris(a)namei.org>
Cc: "Serge E. Hallyn" <serge(a)hallyn.com>
Cc: Jaroslav Kysela <perex(a)perex.cz>
Cc: Takashi Iwai <tiwai(a)suse.com>
Cc: Mark Brown <broonie(a)kernel.org>
Cc: "Martin K. Petersen" <martin.petersen(a)oracle.com>
Cc: Daniel Bristot de Oliveira <bristot(a)kernel.org>
Cc: Steven Rostedt <rostedt(a)goodmis.org>
Cc: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Cc: Masami Hiramatsu <mhiramat(a)kernel.org>
Cc: Mathieu Poirier <mathieu.poirier(a)linaro.org>
Cc: Suzuki K Poulose <suzuki.poulose(a)arm.com>
Cc: Evgeniy Polyakov <zbr(a)ioremap.net>
Cc: Fenghua Yu <fenghua.yu(a)intel.com>
Cc: Reinette Chatre <reinette.chatre(a)intel.com>
Cc: Thomas Gleixner <tglx(a)linutronix.de>
Cc: Borislav Petkov <bp(a)alien8.de>
Cc: Chris Zankel <chris(a)zankel.net>
Cc: Max Filippov <jcmvbkbc(a)gmail.com>
Cc: alsa-devel(a)alsa-project.org
Cc: coresight(a)lists.linaro.org
Cc: bpf(a)vger.kernel.org
Cc: dri-devel(a)lists.freedesktop.org
Cc: isdn4linux(a)listserv.isdn4linux.de
Cc: keyrings(a)vger.kernel.org
Cc: linux-acpi(a)vger.kernel.org
Cc: linux-block(a)vger.kernel.org
Cc: linux-crypto(a)vger.kernel.org
Cc: linux-doc(a)vger.kernel.org
Cc: linux-fbdev(a)vger.kernel.org
Cc: linux-i2c(a)vger.kernel.org
Cc: linux-input(a)vger.kernel.org
Cc: linux-leds(a)vger.kernel.org
Cc: linux-pci(a)vger.kernel.org
Cc: linux-s390(a)vger.kernel.org
Cc: linux-scsi(a)vger.kernel.org
Cc: linux-sgx(a)vger.kernel.org
Cc: linux-spi(a)vger.kernel.org
Cc: linux-trace-devel(a)vger.kernel.org
Cc: linux-trace-kernel(a)vger.kernel.org
Cc: live-patching(a)vger.kernel.org
Cc: linux-pm(a)vger.kernel.org
Cc: linux-security-module(a)vger.kernel.org
Cc: linux-usb(a)vger.kernel.org
Cc: netdev(a)vger.kernel.org
Cc: target-devel(a)vger.kernel.org
Cc: linux-mm(a)kvack.org
Cc: openrisc(a)lists.librecores.org
Cc: linux-arm-kernel(a)lists.infradead.org
Cc: linux-xtensa(a)linux-xtensa.org
Cc: linuxppc-dev(a)lists.ozlabs.org
Cc: x86(a)kernel.org
                    
                  
                  
                          
                            
                            6
                            
                          
                          
                            
                            6
                            
                          
                          
                            
    
                          
                        
                    
                    
                        Hi all,
arch/sh has been a long drag because it supports a lot of SOCs, and most
of them haven't even been converted to device tree infrastructure.  These
SOCs are generally obsolete as well, and all of the support has been barely
maintained for almost 10 years, and not at all for more than 1 year.
Drop arch/sh and everything that depends on it.
Diffstat:
 Documentation/sh/booting.rst                             |   12 
 Documentation/sh/features.rst                            |    3 
 Documentation/sh/index.rst                               |   56 
 Documentation/sh/new-machine.rst                         |  277 -
 Documentation/sh/register-banks.rst                      |   40 
 arch/sh/Kbuild                                           |    7 
 arch/sh/Kconfig                                          |  793 ----
 arch/sh/Kconfig.cpu                                      |  100 
 arch/sh/Kconfig.debug                                    |   78 
 arch/sh/Makefile                                         |  215 -
 arch/sh/boards/Kconfig                                   |  400 --
 arch/sh/boards/Makefile                                  |   20 
 arch/sh/boards/board-apsh4a3a.c                          |  182 
 arch/sh/boards/board-apsh4ad0a.c                         |  132 
 arch/sh/boards/board-edosk7705.c                         |   79 
 arch/sh/boards/board-edosk7760.c                         |  178 
 arch/sh/boards/board-espt.c                              |  105 
 arch/sh/boards/board-magicpanelr2.c                      |  390 --
 arch/sh/boards/board-polaris.c                           |  156 
 arch/sh/boards/board-secureedge5410.c                    |   75 
 arch/sh/boards/board-sh2007.c                            |  146 
 arch/sh/boards/board-sh7757lcr.c                         |  604 ---
 arch/sh/boards/board-sh7785lcr.c                         |  384 --
 arch/sh/boards/board-shmin.c                             |   35 
 arch/sh/boards/board-titan.c                             |   21 
 arch/sh/boards/board-urquell.c                           |  218 -
 arch/sh/boards/mach-ap325rxa/Makefile                    |    3 
 arch/sh/boards/mach-ap325rxa/sdram.S                     |   66 
 arch/sh/boards/mach-ap325rxa/setup.c                     |  573 ---
 arch/sh/boards/mach-dreamcast/Makefile                   |    7 
 arch/sh/boards/mach-dreamcast/irq.c                      |  155 
 arch/sh/boards/mach-dreamcast/rtc.c                      |   96 
 arch/sh/boards/mach-dreamcast/setup.c                    |   39 
 arch/sh/boards/mach-ecovec24/Makefile                    |   10 
 arch/sh/boards/mach-ecovec24/sdram.S                     |  108 
 arch/sh/boards/mach-ecovec24/setup.c                     | 1521 --------
 arch/sh/boards/mach-highlander/Kconfig                   |   26 
 arch/sh/boards/mach-highlander/Makefile                  |   12 
 arch/sh/boards/mach-highlander/irq-r7780mp.c             |   71 
 arch/sh/boards/mach-highlander/irq-r7780rp.c             |   64 
 arch/sh/boards/mach-highlander/irq-r7785rp.c             |   83 
 arch/sh/boards/mach-highlander/pinmux-r7785rp.c          |   17 
 arch/sh/boards/mach-highlander/psw.c                     |  119 
 arch/sh/boards/mach-highlander/setup.c                   |  416 --
 arch/sh/boards/mach-hp6xx/Makefile                       |    8 
 arch/sh/boards/mach-hp6xx/hp6xx_apm.c                    |  109 
 arch/sh/boards/mach-hp6xx/pm.c                           |  156 
 arch/sh/boards/mach-hp6xx/pm_wakeup.S                    |   39 
 arch/sh/boards/mach-hp6xx/setup.c                        |  172 
 arch/sh/boards/mach-kfr2r09/Makefile                     |    5 
 arch/sh/boards/mach-kfr2r09/lcd_wqvga.c                  |  275 -
 arch/sh/boards/mach-kfr2r09/sdram.S                      |   77 
 arch/sh/boards/mach-kfr2r09/setup.c                      |  649 ---
 arch/sh/boards/mach-landisk/Makefile                     |    6 
 arch/sh/boards/mach-landisk/gio.c                        |  164 
 arch/sh/boards/mach-landisk/irq.c                        |   63 
 arch/sh/boards/mach-landisk/psw.c                        |  140 
 arch/sh/boards/mach-landisk/setup.c                      |  102 
 arch/sh/boards/mach-lboxre2/Makefile                     |    6 
 arch/sh/boards/mach-lboxre2/irq.c                        |   27 
 arch/sh/boards/mach-lboxre2/setup.c                      |   79 
 arch/sh/boards/mach-microdev/Makefile                    |    6 
 arch/sh/boards/mach-microdev/fdc37c93xapm.c              |  157 
 arch/sh/boards/mach-microdev/io.c                        |  123 
 arch/sh/boards/mach-microdev/irq.c                       |  150 
 arch/sh/boards/mach-microdev/setup.c                     |  197 -
 arch/sh/boards/mach-migor/Kconfig                        |   16 
 arch/sh/boards/mach-migor/Makefile                       |    3 
 arch/sh/boards/mach-migor/lcd_qvga.c                     |  163 
 arch/sh/boards/mach-migor/sdram.S                        |   66 
 arch/sh/boards/mach-migor/setup.c                        |  649 ---
 arch/sh/boards/mach-r2d/Kconfig                          |   24 
 arch/sh/boards/mach-r2d/Makefile                         |    6 
 arch/sh/boards/mach-r2d/irq.c                            |  156 
 arch/sh/boards/mach-r2d/setup.c                          |  305 -
 arch/sh/boards/mach-rsk/Kconfig                          |   29 
 arch/sh/boards/mach-rsk/Makefile                         |    5 
 arch/sh/boards/mach-rsk/devices-rsk7203.c                |  137 
 arch/sh/boards/mach-rsk/devices-rsk7264.c                |   55 
 arch/sh/boards/mach-rsk/devices-rsk7269.c                |   57 
 arch/sh/boards/mach-rsk/setup.c                          |   84 
 arch/sh/boards/mach-sdk7780/Kconfig                      |   17 
 arch/sh/boards/mach-sdk7780/Makefile                     |    6 
 arch/sh/boards/mach-sdk7780/irq.c                        |   43 
 arch/sh/boards/mach-sdk7780/setup.c                      |   96 
 arch/sh/boards/mach-sdk7786/Makefile                     |    5 
 arch/sh/boards/mach-sdk7786/fpga.c                       |   69 
 arch/sh/boards/mach-sdk7786/gpio.c                       |   46 
 arch/sh/boards/mach-sdk7786/irq.c                        |   45 
 arch/sh/boards/mach-sdk7786/nmi.c                        |   80 
 arch/sh/boards/mach-sdk7786/setup.c                      |  266 -
 arch/sh/boards/mach-sdk7786/sram.c                       |   69 
 arch/sh/boards/mach-se/7206/Makefile                     |    6 
 arch/sh/boards/mach-se/7206/irq.c                        |  151 
 arch/sh/boards/mach-se/7206/setup.c                      |   96 
 arch/sh/boards/mach-se/7343/Makefile                     |    6 
 arch/sh/boards/mach-se/7343/irq.c                        |  123 
 arch/sh/boards/mach-se/7343/setup.c                      |  182 
 arch/sh/boards/mach-se/770x/Makefile                     |    6 
 arch/sh/boards/mach-se/770x/irq.c                        |  109 
 arch/sh/boards/mach-se/770x/setup.c                      |  205 -
 arch/sh/boards/mach-se/7721/Makefile                     |    2 
 arch/sh/boards/mach-se/7721/irq.c                        |   42 
 arch/sh/boards/mach-se/7721/setup.c                      |   92 
 arch/sh/boards/mach-se/7722/Makefile                     |   11 
 arch/sh/boards/mach-se/7722/irq.c                        |  116 
 arch/sh/boards/mach-se/7722/setup.c                      |  190 
 arch/sh/boards/mach-se/7724/Makefile                     |   11 
 arch/sh/boards/mach-se/7724/irq.c                        |  143 
 arch/sh/boards/mach-se/7724/sdram.S                      |  128 
 arch/sh/boards/mach-se/7724/setup.c                      |  986 -----
 arch/sh/boards/mach-se/7751/Makefile                     |    6 
 arch/sh/boards/mach-se/7751/irq.c                        |   51 
 arch/sh/boards/mach-se/7751/setup.c                      |   60 
 arch/sh/boards/mach-se/7780/Makefile                     |   11 
 arch/sh/boards/mach-se/7780/irq.c                        |   65 
 arch/sh/boards/mach-se/7780/setup.c                      |  111 
 arch/sh/boards/mach-se/Makefile                          |   11 
 arch/sh/boards/mach-se/board-se7619.c                    |   27 
 arch/sh/boards/mach-sh03/Makefile                        |    7 
 arch/sh/boards/mach-sh03/rtc.c                           |  143 
 arch/sh/boards/mach-sh03/setup.c                         |   97 
 arch/sh/boards/mach-sh7763rdp/Makefile                   |    2 
 arch/sh/boards/mach-sh7763rdp/irq.c                      |   42 
 arch/sh/boards/mach-sh7763rdp/setup.c                    |  213 -
 arch/sh/boards/mach-x3proto/Makefile                     |    4 
 arch/sh/boards/mach-x3proto/gpio.c                       |  136 
 arch/sh/boards/mach-x3proto/ilsel.c                      |  156 
 arch/sh/boards/mach-x3proto/setup.c                      |  270 -
 arch/sh/boards/of-generic.c                              |  172 
 arch/sh/boot/.gitignore                                  |    5 
 arch/sh/boot/Makefile                                    |  115 
 arch/sh/boot/compressed/.gitignore                       |    2 
 arch/sh/boot/compressed/Makefile                         |   66 
 arch/sh/boot/compressed/ashiftrt.S                       |    2 
 arch/sh/boot/compressed/ashldi3.c                        |    2 
 arch/sh/boot/compressed/ashlsi3.S                        |    2 
 arch/sh/boot/compressed/ashrsi3.S                        |    2 
 arch/sh/boot/compressed/cache.c                          |   13 
 arch/sh/boot/compressed/head_32.S                        |  126 
 arch/sh/boot/compressed/head_64.S                        |  159 
 arch/sh/boot/compressed/lshrsi3.S                        |    2 
 arch/sh/boot/compressed/misc.c                           |  146 
 arch/sh/boot/compressed/vmlinux.scr                      |   10 
 arch/sh/boot/dts/Makefile                                |    2 
 arch/sh/boot/dts/j2_mimas_v2.dts                         |   99 
 arch/sh/boot/romimage/Makefile                           |   30 
 arch/sh/boot/romimage/head.S                             |   85 
 arch/sh/boot/romimage/mmcif-sh7724.c                     |   78 
 arch/sh/boot/romimage/vmlinux.scr                        |    8 
 arch/sh/cchips/Kconfig                                   |   46 
 arch/sh/cchips/hd6446x/Makefile                          |    4 
 arch/sh/cchips/hd6446x/hd64461.c                         |  112 
 arch/sh/configs/ap325rxa_defconfig                       |  103 
 arch/sh/configs/apsh4a3a_defconfig                       |   91 
 arch/sh/configs/apsh4ad0a_defconfig                      |  122 
 arch/sh/configs/dreamcast_defconfig                      |   72 
 arch/sh/configs/ecovec24-romimage_defconfig              |   58 
 arch/sh/configs/ecovec24_defconfig                       |  132 
 arch/sh/configs/edosk7705_defconfig                      |   35 
 arch/sh/configs/edosk7760_defconfig                      |  114 
 arch/sh/configs/espt_defconfig                           |  114 
 arch/sh/configs/hp6xx_defconfig                          |   60 
 arch/sh/configs/j2_defconfig                             |   42 
 arch/sh/configs/kfr2r09-romimage_defconfig               |   53 
 arch/sh/configs/kfr2r09_defconfig                        |   84 
 arch/sh/configs/landisk_defconfig                        |  115 
 arch/sh/configs/lboxre2_defconfig                        |   62 
 arch/sh/configs/magicpanelr2_defconfig                   |   90 
 arch/sh/configs/microdev_defconfig                       |   43 
 arch/sh/configs/migor_defconfig                          |   94 
 arch/sh/configs/polaris_defconfig                        |   83 
 arch/sh/configs/r7780mp_defconfig                        |  109 
 arch/sh/configs/r7785rp_defconfig                        |  107 
 arch/sh/configs/rsk7201_defconfig                        |   63 
 arch/sh/configs/rsk7203_defconfig                        |  121 
 arch/sh/configs/rsk7264_defconfig                        |   71 
 arch/sh/configs/rsk7269_defconfig                        |   56 
 arch/sh/configs/rts7751r2d1_defconfig                    |   91 
 arch/sh/configs/rts7751r2dplus_defconfig                 |   96 
 arch/sh/configs/sdk7780_defconfig                        |  139 
 arch/sh/configs/sdk7786_defconfig                        |  217 -
 arch/sh/configs/se7206_defconfig                         |  108 
 arch/sh/configs/se7343_defconfig                         |   96 
 arch/sh/configs/se7619_defconfig                         |   43 
 arch/sh/configs/se7705_defconfig                         |   54 
 arch/sh/configs/se7712_defconfig                         |  101 
 arch/sh/configs/se7721_defconfig                         |  127 
 arch/sh/configs/se7722_defconfig                         |   56 
 arch/sh/configs/se7724_defconfig                         |  132 
 arch/sh/configs/se7750_defconfig                         |   55 
 arch/sh/configs/se7751_defconfig                         |   46 
 arch/sh/configs/se7780_defconfig                         |  106 
 arch/sh/configs/secureedge5410_defconfig                 |   53 
 arch/sh/configs/sh03_defconfig                           |  126 
 arch/sh/configs/sh2007_defconfig                         |  199 -
 arch/sh/configs/sh7710voipgw_defconfig                   |   55 
 arch/sh/configs/sh7724_generic_defconfig                 |   41 
 arch/sh/configs/sh7757lcr_defconfig                      |   85 
 arch/sh/configs/sh7763rdp_defconfig                      |  116 
 arch/sh/configs/sh7770_generic_defconfig                 |   43 
 arch/sh/configs/sh7785lcr_32bit_defconfig                |  149 
 arch/sh/configs/sh7785lcr_defconfig                      |  117 
 arch/sh/configs/shmin_defconfig                          |   52 
 arch/sh/configs/shx3_defconfig                           |  103 
 arch/sh/configs/titan_defconfig                          |  272 -
 arch/sh/configs/ul2_defconfig                            |   84 
 arch/sh/configs/urquell_defconfig                        |  147 
 arch/sh/drivers/Kconfig                                  |   20 
 arch/sh/drivers/Makefile                                 |   11 
 arch/sh/drivers/dma/Kconfig                              |   74 
 arch/sh/drivers/dma/Makefile                             |    9 
 arch/sh/drivers/dma/dma-api.c                            |  417 --
 arch/sh/drivers/dma/dma-g2.c                             |  197 -
 arch/sh/drivers/dma/dma-pvr2.c                           |  102 
 arch/sh/drivers/dma/dma-sh.c                             |  414 --
 arch/sh/drivers/dma/dma-sysfs.c                          |  164 
 arch/sh/drivers/dma/dmabrg.c                             |  196 -
 arch/sh/drivers/heartbeat.c                              |  152 
 arch/sh/drivers/pci/Makefile                             |   27 
 arch/sh/drivers/pci/common.c                             |  159 
 arch/sh/drivers/pci/fixups-dreamcast.c                   |   84 
 arch/sh/drivers/pci/fixups-landisk.c                     |   57 
 arch/sh/drivers/pci/fixups-r7780rp.c                     |   18 
 arch/sh/drivers/pci/fixups-rts7751r2d.c                  |   64 
 arch/sh/drivers/pci/fixups-sdk7780.c                     |   40 
 arch/sh/drivers/pci/fixups-sdk7786.c                     |   64 
 arch/sh/drivers/pci/fixups-se7751.c                      |  113 
 arch/sh/drivers/pci/fixups-sh03.c                        |   33 
 arch/sh/drivers/pci/fixups-snapgear.c                    |   37 
 arch/sh/drivers/pci/fixups-titan.c                       |   36 
 arch/sh/drivers/pci/ops-dreamcast.c                      |   79 
 arch/sh/drivers/pci/ops-sh4.c                            |  105 
 arch/sh/drivers/pci/ops-sh7786.c                         |  168 
 arch/sh/drivers/pci/pci-dreamcast.c                      |   97 
 arch/sh/drivers/pci/pci-sh4.h                            |  182 
 arch/sh/drivers/pci/pci-sh7751.c                         |  179 
 arch/sh/drivers/pci/pci-sh7751.h                         |  126 
 arch/sh/drivers/pci/pci-sh7780.c                         |  407 --
 arch/sh/drivers/pci/pci-sh7780.h                         |   43 
 arch/sh/drivers/pci/pci.c                                |  298 -
 arch/sh/drivers/pci/pcie-sh7786.c                        |  609 ---
 arch/sh/drivers/pci/pcie-sh7786.h                        |  577 ---
 arch/sh/drivers/platform_early.c                         |  340 -
 arch/sh/drivers/push-switch.c                            |  136 
 arch/sh/drivers/superhyway/Makefile                      |    7 
 arch/sh/drivers/superhyway/ops-sh4-202.c                 |  168 
 arch/sh/include/asm/Kbuild                               |    5 
 arch/sh/include/asm/adc.h                                |   12 
 arch/sh/include/asm/addrspace.h                          |   63 
 arch/sh/include/asm/alignment.h                          |   22 
 arch/sh/include/asm/asm-offsets.h                        |    2 
 arch/sh/include/asm/atomic-grb.h                         |   86 
 arch/sh/include/asm/atomic-irq.h                         |   72 
 arch/sh/include/asm/atomic-llsc.h                        |   88 
 arch/sh/include/asm/atomic.h                             |   38 
 arch/sh/include/asm/barrier.h                            |   45 
 arch/sh/include/asm/bitops-cas.h                         |   94 
 arch/sh/include/asm/bitops-grb.h                         |  173 
 arch/sh/include/asm/bitops-llsc.h                        |  147 
 arch/sh/include/asm/bitops-op32.h                        |  143 
 arch/sh/include/asm/bitops.h                             |   72 
 arch/sh/include/asm/bl_bit.h                             |    2 
 arch/sh/include/asm/bl_bit_32.h                          |   34 
 arch/sh/include/asm/bug.h                                |  121 
 arch/sh/include/asm/bugs.h                               |   74 
 arch/sh/include/asm/cache.h                              |   46 
 arch/sh/include/asm/cache_insns.h                        |    2 
 arch/sh/include/asm/cache_insns_32.h                     |   22 
 arch/sh/include/asm/cacheflush.h                         |  106 
 arch/sh/include/asm/checksum.h                           |    2 
 arch/sh/include/asm/checksum_32.h                        |  203 -
 arch/sh/include/asm/clock.h                              |   17 
 arch/sh/include/asm/cmpxchg-cas.h                        |   25 
 arch/sh/include/asm/cmpxchg-grb.h                        |   95 
 arch/sh/include/asm/cmpxchg-irq.h                        |   54 
 arch/sh/include/asm/cmpxchg-llsc.h                       |   53 
 arch/sh/include/asm/cmpxchg-xchg.h                       |   50 
 arch/sh/include/asm/cmpxchg.h                            |   74 
 arch/sh/include/asm/device.h                             |   17 
 arch/sh/include/asm/dma-register.h                       |   50 
 arch/sh/include/asm/dma.h                                |  140 
 arch/sh/include/asm/dmabrg.h                             |   24 
 arch/sh/include/asm/dwarf.h                              |  417 --
 arch/sh/include/asm/elf.h                                |  211 -
 arch/sh/include/asm/entry-macros.S                       |  123 
 arch/sh/include/asm/extable.h                            |    7 
 arch/sh/include/asm/fb.h                                 |   20 
 arch/sh/include/asm/fixmap.h                             |   86 
 arch/sh/include/asm/flat.h                               |   33 
 arch/sh/include/asm/fpu.h                                |   69 
 arch/sh/include/asm/freq.h                               |   12 
 arch/sh/include/asm/ftrace.h                             |   48 
 arch/sh/include/asm/futex-cas.h                          |   35 
 arch/sh/include/asm/futex-irq.h                          |   25 
 arch/sh/include/asm/futex-llsc.h                         |   42 
 arch/sh/include/asm/futex.h                              |   72 
 arch/sh/include/asm/gpio.h                               |   50 
 arch/sh/include/asm/hardirq.h                            |   11 
 arch/sh/include/asm/hd64461.h                            |  252 -
 arch/sh/include/asm/heartbeat.h                          |   19 
 arch/sh/include/asm/hugetlb.h                            |   38 
 arch/sh/include/asm/hw_breakpoint.h                      |   70 
 arch/sh/include/asm/hw_irq.h                             |   36 
 arch/sh/include/asm/i2c-sh7760.h                         |   21 
 arch/sh/include/asm/io.h                                 |  294 -
 arch/sh/include/asm/io_generic.h                         |   19 
 arch/sh/include/asm/io_noioport.h                        |   86 
 arch/sh/include/asm/io_trapped.h                         |   59 
 arch/sh/include/asm/irq.h                                |   58 
 arch/sh/include/asm/irqflags.h                           |   10 
 arch/sh/include/asm/kdebug.h                             |   19 
 arch/sh/include/asm/kexec.h                              |   72 
 arch/sh/include/asm/kgdb.h                               |   38 
 arch/sh/include/asm/kprobes.h                            |   57 
 arch/sh/include/asm/linkage.h                            |    8 
 arch/sh/include/asm/machvec.h                            |   41 
 arch/sh/include/asm/mmiowb.h                             |   12 
 arch/sh/include/asm/mmu.h                                |  107 
 arch/sh/include/asm/mmu_context.h                        |  178 
 arch/sh/include/asm/mmu_context_32.h                     |   51 
 arch/sh/include/asm/mmzone.h                             |   45 
 arch/sh/include/asm/module.h                             |   14 
 arch/sh/include/asm/page.h                               |  186 
 arch/sh/include/asm/pci.h                                |   91 
 arch/sh/include/asm/perf_event.h                         |   30 
 arch/sh/include/asm/pgalloc.h                            |   40 
 arch/sh/include/asm/pgtable-2level.h                     |   24 
 arch/sh/include/asm/pgtable-3level.h                     |   59 
 arch/sh/include/asm/pgtable.h                            |  150 
 arch/sh/include/asm/pgtable_32.h                         |  462 --
 arch/sh/include/asm/platform_early.h                     |   61 
 arch/sh/include/asm/posix_types.h                        |    2 
 arch/sh/include/asm/processor.h                          |  173 
 arch/sh/include/asm/processor_32.h                       |  202 -
 arch/sh/include/asm/ptrace.h                             |  139 
 arch/sh/include/asm/ptrace_32.h                          |   14 
 arch/sh/include/asm/push-switch.h                        |   32 
 arch/sh/include/asm/reboot.h                             |   22 
 arch/sh/include/asm/romimage-macros.h                    |   74 
 arch/sh/include/asm/rtc.h                                |   15 
 arch/sh/include/asm/seccomp.h                            |   21 
 arch/sh/include/asm/sections.h                           |   12 
 arch/sh/include/asm/setup.h                              |   25 
 arch/sh/include/asm/sfp-machine.h                        |   80 
 arch/sh/include/asm/sh7760fb.h                           |  198 -
 arch/sh/include/asm/sh_bios.h                            |   28 
 arch/sh/include/asm/shmparam.h                           |   19 
 arch/sh/include/asm/siu.h                                |   20 
 arch/sh/include/asm/smc37c93x.h                          |  191 -
 arch/sh/include/asm/smp-ops.h                            |   52 
 arch/sh/include/asm/smp.h                                |   83 
 arch/sh/include/asm/sparsemem.h                          |   12 
 arch/sh/include/asm/spi.h                                |   14 
 arch/sh/include/asm/spinlock-cas.h                       |   89 
 arch/sh/include/asm/spinlock-llsc.h                      |  198 -
 arch/sh/include/asm/spinlock.h                           |   19 
 arch/sh/include/asm/spinlock_types.h                     |   22 
 arch/sh/include/asm/sram.h                               |   39 
 arch/sh/include/asm/stackprotector.h                     |   21 
 arch/sh/include/asm/stacktrace.h                         |   21 
 arch/sh/include/asm/string.h                             |    2 
 arch/sh/include/asm/string_32.h                          |  102 
 arch/sh/include/asm/suspend.h                            |   97 
 arch/sh/include/asm/switch_to.h                          |    7 
 arch/sh/include/asm/switch_to_32.h                       |  131 
 arch/sh/include/asm/syscall.h                            |    9 
 arch/sh/include/asm/syscall_32.h                         |   69 
 arch/sh/include/asm/syscalls.h                           |   14 
 arch/sh/include/asm/syscalls_32.h                        |   27 
 arch/sh/include/asm/thread_info.h                        |  171 
 arch/sh/include/asm/timex.h                              |   24 
 arch/sh/include/asm/tlb.h                                |   29 
 arch/sh/include/asm/tlbflush.h                           |   52 
 arch/sh/include/asm/topology.h                           |   28 
 arch/sh/include/asm/traps.h                              |   18 
 arch/sh/include/asm/traps_32.h                           |   61 
 arch/sh/include/asm/types.h                              |   16 
 arch/sh/include/asm/uaccess.h                            |  133 
 arch/sh/include/asm/uaccess_32.h                         |  227 -
 arch/sh/include/asm/uncached.h                           |   59 
 arch/sh/include/asm/unistd.h                             |   31 
 arch/sh/include/asm/unwinder.h                           |   32 
 arch/sh/include/asm/user.h                               |   55 
 arch/sh/include/asm/vermagic.h                           |   30 
 arch/sh/include/asm/vga.h                                |    7 
 arch/sh/include/asm/vmalloc.h                            |    4 
 arch/sh/include/asm/vmlinux.lds.h                        |   18 
 arch/sh/include/asm/watchdog.h                           |  159 
 arch/sh/include/asm/word-at-a-time.h                     |   54 
 arch/sh/include/cpu-common/cpu/addrspace.h               |   16 
 arch/sh/include/cpu-common/cpu/mmu_context.h             |   13 
 arch/sh/include/cpu-common/cpu/pfc.h                     |   18 
 arch/sh/include/cpu-common/cpu/rtc.h                     |    9 
 arch/sh/include/cpu-common/cpu/sigcontext.h              |   18 
 arch/sh/include/cpu-common/cpu/timer.h                   |    7 
 arch/sh/include/cpu-sh2/cpu/cache.h                      |   40 
 arch/sh/include/cpu-sh2/cpu/freq.h                       |   15 
 arch/sh/include/cpu-sh2/cpu/watchdog.h                   |   66 
 arch/sh/include/cpu-sh2a/cpu/addrspace.h                 |   11 
 arch/sh/include/cpu-sh2a/cpu/cache.h                     |   40 
 arch/sh/include/cpu-sh2a/cpu/freq.h                      |   13 
 arch/sh/include/cpu-sh2a/cpu/rtc.h                       |    9 
 arch/sh/include/cpu-sh2a/cpu/sh7203.h                    |  144 
 arch/sh/include/cpu-sh2a/cpu/sh7264.h                    |  169 
 arch/sh/include/cpu-sh2a/cpu/sh7269.h                    |  213 -
 arch/sh/include/cpu-sh2a/cpu/watchdog.h                  |    2 
 arch/sh/include/cpu-sh3/cpu/adc.h                        |   29 
 arch/sh/include/cpu-sh3/cpu/cache.h                      |   40 
 arch/sh/include/cpu-sh3/cpu/dac.h                        |   42 
 arch/sh/include/cpu-sh3/cpu/dma-register.h               |   38 
 arch/sh/include/cpu-sh3/cpu/dma.h                        |   19 
 arch/sh/include/cpu-sh3/cpu/freq.h                       |   24 
 arch/sh/include/cpu-sh3/cpu/gpio.h                       |   78 
 arch/sh/include/cpu-sh3/cpu/mmu_context.h                |   42 
 arch/sh/include/cpu-sh3/cpu/serial.h                     |   11 
 arch/sh/include/cpu-sh3/cpu/sh7720.h                     |  175 
 arch/sh/include/cpu-sh3/cpu/watchdog.h                   |   22 
 arch/sh/include/cpu-sh4/cpu/addrspace.h                  |   41 
 arch/sh/include/cpu-sh4/cpu/cache.h                      |   41 
 arch/sh/include/cpu-sh4/cpu/dma-register.h               |   98 
 arch/sh/include/cpu-sh4/cpu/dma.h                        |   18 
 arch/sh/include/cpu-sh4/cpu/fpu.h                        |   30 
 arch/sh/include/cpu-sh4/cpu/freq.h                       |   74 
 arch/sh/include/cpu-sh4/cpu/mmu_context.h                |   79 
 arch/sh/include/cpu-sh4/cpu/rtc.h                        |   14 
 arch/sh/include/cpu-sh4/cpu/sh7722.h                     |  252 -
 arch/sh/include/cpu-sh4/cpu/sh7723.h                     |  285 -
 arch/sh/include/cpu-sh4/cpu/sh7724.h                     |  319 -
 arch/sh/include/cpu-sh4/cpu/sh7734.h                     |  307 -
 arch/sh/include/cpu-sh4/cpu/sh7757.h                     |  290 -
 arch/sh/include/cpu-sh4/cpu/sh7785.h                     |  260 -
 arch/sh/include/cpu-sh4/cpu/sh7786.h                     |  138 
 arch/sh/include/cpu-sh4/cpu/shx3.h                       |   65 
 arch/sh/include/cpu-sh4/cpu/sigcontext.h                 |   25 
 arch/sh/include/cpu-sh4/cpu/sq.h                         |   33 
 arch/sh/include/cpu-sh4/cpu/watchdog.h                   |   41 
 arch/sh/include/cpu-sh4a/cpu/dma.h                       |   72 
 arch/sh/include/cpu-sh4a/cpu/serial.h                    |    8 
 arch/sh/include/mach-common/mach/highlander.h            |  208 -
 arch/sh/include/mach-common/mach/hp6xx.h                 |   59 
 arch/sh/include/mach-common/mach/lboxre2.h               |   24 
 arch/sh/include/mach-common/mach/magicpanelr2.h          |   64 
 arch/sh/include/mach-common/mach/mangle-port.h           |   46 
 arch/sh/include/mach-common/mach/microdev.h              |   69 
 arch/sh/include/mach-common/mach/r2d.h                   |   71 
 arch/sh/include/mach-common/mach/romimage.h              |   12 
 arch/sh/include/mach-common/mach/sdk7780.h               |   79 
 arch/sh/include/mach-common/mach/secureedge5410.h        |   47 
 arch/sh/include/mach-common/mach/sh2007.h                |  118 
 arch/sh/include/mach-common/mach/sh7763rdp.h             |   50 
 arch/sh/include/mach-common/mach/sh7785lcr.h             |   58 
 arch/sh/include/mach-common/mach/shmin.h                 |   10 
 arch/sh/include/mach-common/mach/titan.h                 |   20 
 arch/sh/include/mach-common/mach/urquell.h               |   69 
 arch/sh/include/mach-dreamcast/mach/dma.h                |   29 
 arch/sh/include/mach-dreamcast/mach/maple.h              |   38 
 arch/sh/include/mach-dreamcast/mach/pci.h                |   24 
 arch/sh/include/mach-dreamcast/mach/sysasic.h            |   46 
 arch/sh/include/mach-ecovec24/mach/partner-jet-setup.txt |   82 
 arch/sh/include/mach-ecovec24/mach/romimage.h            |   48 
 arch/sh/include/mach-kfr2r09/mach/kfr2r09.h              |   24 
 arch/sh/include/mach-kfr2r09/mach/partner-jet-setup.txt  |  144 
 arch/sh/include/mach-kfr2r09/mach/romimage.h             |   31 
 arch/sh/include/mach-landisk/mach/gio.h                  |   38 
 arch/sh/include/mach-landisk/mach/iodata_landisk.h       |   46 
 arch/sh/include/mach-migor/mach/migor.h                  |   16 
 arch/sh/include/mach-sdk7786/mach/fpga.h                 |  156 
 arch/sh/include/mach-sdk7786/mach/irq.h                  |    8 
 arch/sh/include/mach-se/mach/mrshpc.h                    |   53 
 arch/sh/include/mach-se/mach/se.h                        |  120 
 arch/sh/include/mach-se/mach/se7206.h                    |   14 
 arch/sh/include/mach-se/mach/se7343.h                    |  143 
 arch/sh/include/mach-se/mach/se7721.h                    |   68 
 arch/sh/include/mach-se/mach/se7722.h                    |   98 
 arch/sh/include/mach-se/mach/se7724.h                    |   69 
 arch/sh/include/mach-se/mach/se7751.h                    |   75 
 arch/sh/include/mach-se/mach/se7780.h                    |  106 
 arch/sh/include/mach-sh03/mach/io.h                      |   26 
 arch/sh/include/mach-sh03/mach/sh03.h                    |   19 
 arch/sh/include/mach-x3proto/mach/hardware.h             |   13 
 arch/sh/include/mach-x3proto/mach/ilsel.h                |   46 
 arch/sh/include/uapi/asm/Kbuild                          |    4 
 arch/sh/include/uapi/asm/auxvec.h                        |   39 
 arch/sh/include/uapi/asm/byteorder.h                     |   11 
 arch/sh/include/uapi/asm/cachectl.h                      |   20 
 arch/sh/include/uapi/asm/cpu-features.h                  |   28 
 arch/sh/include/uapi/asm/hw_breakpoint.h                 |    5 
 arch/sh/include/uapi/asm/ioctls.h                        |  116 
 arch/sh/include/uapi/asm/posix_types.h                   |    2 
 arch/sh/include/uapi/asm/posix_types_32.h                |   23 
 arch/sh/include/uapi/asm/ptrace.h                        |   30 
 arch/sh/include/uapi/asm/ptrace_32.h                     |   78 
 arch/sh/include/uapi/asm/sigcontext.h                    |   25 
 arch/sh/include/uapi/asm/signal.h                        |   18 
 arch/sh/include/uapi/asm/sockios.h                       |   18 
 arch/sh/include/uapi/asm/stat.h                          |   78 
 arch/sh/include/uapi/asm/swab.h                          |   50 
 arch/sh/include/uapi/asm/unistd.h                        |    2 
 arch/sh/kernel/.gitignore                                |    2 
 arch/sh/kernel/Makefile                                  |   49 
 arch/sh/kernel/asm-offsets.c                             |   60 
 arch/sh/kernel/cpu/Makefile                              |   21 
 arch/sh/kernel/cpu/adc.c                                 |   37 
 arch/sh/kernel/cpu/clock-cpg.c                           |   78 
 arch/sh/kernel/cpu/clock.c                               |   52 
 arch/sh/kernel/cpu/fpu.c                                 |   92 
 arch/sh/kernel/cpu/init.c                                |  366 -
 arch/sh/kernel/cpu/irq/Makefile                          |    6 
 arch/sh/kernel/cpu/irq/imask.c                           |   85 
 arch/sh/kernel/cpu/irq/ipr.c                             |   80 
 arch/sh/kernel/cpu/pfc.c                                 |   25 
 arch/sh/kernel/cpu/proc.c                                |  151 
 arch/sh/kernel/cpu/sh2/Makefile                          |   12 
 arch/sh/kernel/cpu/sh2/clock-sh7619.c                    |   74 
 arch/sh/kernel/cpu/sh2/entry.S                           |  373 -
 arch/sh/kernel/cpu/sh2/ex.S                              |   44 
 arch/sh/kernel/cpu/sh2/probe.c                           |   71 
 arch/sh/kernel/cpu/sh2/setup-sh7619.c                    |  205 -
 arch/sh/kernel/cpu/sh2/smp-j2.c                          |  136 
 arch/sh/kernel/cpu/sh2a/Makefile                         |   25 
 arch/sh/kernel/cpu/sh2a/clock-sh7201.c                   |   82 
 arch/sh/kernel/cpu/sh2a/clock-sh7203.c                   |   78 
 arch/sh/kernel/cpu/sh2a/clock-sh7206.c                   |   80 
 arch/sh/kernel/cpu/sh2a/clock-sh7264.c                   |  157 
 arch/sh/kernel/cpu/sh2a/clock-sh7269.c                   |  181 
 arch/sh/kernel/cpu/sh2a/entry.S                          |  247 -
 arch/sh/kernel/cpu/sh2a/ex.S                             |   70 
 arch/sh/kernel/cpu/sh2a/fpu.c                            |  572 ---
 arch/sh/kernel/cpu/sh2a/opcode_helper.c                  |   51 
 arch/sh/kernel/cpu/sh2a/pinmux-sh7203.c                  |   27 
 arch/sh/kernel/cpu/sh2a/pinmux-sh7264.c                  |   27 
 arch/sh/kernel/cpu/sh2a/pinmux-sh7269.c                  |   28 
 arch/sh/kernel/cpu/sh2a/probe.c                          |   57 
 arch/sh/kernel/cpu/sh2a/setup-mxg.c                      |  175 
 arch/sh/kernel/cpu/sh2a/setup-sh7201.c                   |  418 --
 arch/sh/kernel/cpu/sh2a/setup-sh7203.c                   |  355 -
 arch/sh/kernel/cpu/sh2a/setup-sh7206.c                   |  291 -
 arch/sh/kernel/cpu/sh2a/setup-sh7264.c                   |  552 --
 arch/sh/kernel/cpu/sh2a/setup-sh7269.c                   |  568 --
 arch/sh/kernel/cpu/sh3/Makefile                          |   34 
 arch/sh/kernel/cpu/sh3/clock-sh3.c                       |   86 
 arch/sh/kernel/cpu/sh3/clock-sh7705.c                    |   81 
 arch/sh/kernel/cpu/sh3/clock-sh7706.c                    |   81 
 arch/sh/kernel/cpu/sh3/clock-sh7709.c                    |   82 
 arch/sh/kernel/cpu/sh3/clock-sh7710.c                    |   75 
 arch/sh/kernel/cpu/sh3/clock-sh7712.c                    |   68 
 arch/sh/kernel/cpu/sh3/entry.S                           |  509 --
 arch/sh/kernel/cpu/sh3/ex.S                              |   56 
 arch/sh/kernel/cpu/sh3/pinmux-sh7720.c                   |   27 
 arch/sh/kernel/cpu/sh3/probe.c                           |  108 
 arch/sh/kernel/cpu/sh3/serial-sh770x.c                   |   34 
 arch/sh/kernel/cpu/sh3/serial-sh7710.c                   |   21 
 arch/sh/kernel/cpu/sh3/serial-sh7720.c                   |   38 
 arch/sh/kernel/cpu/sh3/setup-sh3.c                       |   69 
 arch/sh/kernel/cpu/sh3/setup-sh7705.c                    |  190 
 arch/sh/kernel/cpu/sh3/setup-sh770x.c                    |  246 -
 arch/sh/kernel/cpu/sh3/setup-sh7710.c                    |  189 
 arch/sh/kernel/cpu/sh3/setup-sh7720.c                    |  286 -
 arch/sh/kernel/cpu/sh3/swsusp.S                          |  144 
 arch/sh/kernel/cpu/sh4/Makefile                          |   37 
 arch/sh/kernel/cpu/sh4/clock-sh4-202.c                   |  174 
 arch/sh/kernel/cpu/sh4/clock-sh4.c                       |   77 
 arch/sh/kernel/cpu/sh4/fpu.c                             |  425 --
 arch/sh/kernel/cpu/sh4/perf_event.c                      |  265 -
 arch/sh/kernel/cpu/sh4/probe.c                           |  260 -
 arch/sh/kernel/cpu/sh4/setup-sh4-202.c                   |  139 
 arch/sh/kernel/cpu/sh4/setup-sh7750.c                    |  359 -
 arch/sh/kernel/cpu/sh4/setup-sh7760.c                    |  297 -
 arch/sh/kernel/cpu/sh4/softfloat.c                       |  930 ----
 arch/sh/kernel/cpu/sh4/sq.c                              |  414 --
 arch/sh/kernel/cpu/sh4a/Makefile                         |   53 
 arch/sh/kernel/cpu/sh4a/clock-sh7343.c                   |  277 -
 arch/sh/kernel/cpu/sh4a/clock-sh7366.c                   |  270 -
 arch/sh/kernel/cpu/sh4a/clock-sh7722.c                   |  253 -
 arch/sh/kernel/cpu/sh4a/clock-sh7723.c                   |  301 -
 arch/sh/kernel/cpu/sh4a/clock-sh7724.c                   |  367 -
 arch/sh/kernel/cpu/sh4a/clock-sh7734.c                   |  256 -
 arch/sh/kernel/cpu/sh4a/clock-sh7757.c                   |  152 
 arch/sh/kernel/cpu/sh4a/clock-sh7763.c                   |  116 
 arch/sh/kernel/cpu/sh4a/clock-sh7770.c                   |   70 
 arch/sh/kernel/cpu/sh4a/clock-sh7780.c                   |  122 
 arch/sh/kernel/cpu/sh4a/clock-sh7785.c                   |  174 
 arch/sh/kernel/cpu/sh4a/clock-sh7786.c                   |  189 
 arch/sh/kernel/cpu/sh4a/clock-shx3.c                     |  148 
 arch/sh/kernel/cpu/sh4a/intc-shx3.c                      |   31 
 arch/sh/kernel/cpu/sh4a/perf_event.c                     |  299 -
 arch/sh/kernel/cpu/sh4a/pinmux-sh7722.c                  |   21 
 arch/sh/kernel/cpu/sh4a/pinmux-sh7723.c                  |   27 
 arch/sh/kernel/cpu/sh4a/pinmux-sh7724.c                  |   32 
 arch/sh/kernel/cpu/sh4a/pinmux-sh7734.c                  |   32 
 arch/sh/kernel/cpu/sh4a/pinmux-sh7757.c                  |   32 
 arch/sh/kernel/cpu/sh4a/pinmux-sh7785.c                  |   27 
 arch/sh/kernel/cpu/sh4a/pinmux-sh7786.c                  |   32 
 arch/sh/kernel/cpu/sh4a/pinmux-shx3.c                    |   26 
 arch/sh/kernel/cpu/sh4a/serial-sh7722.c                  |   24 
 arch/sh/kernel/cpu/sh4a/setup-sh7343.c                   |  444 --
 arch/sh/kernel/cpu/sh4a/setup-sh7366.c                   |  388 --
 arch/sh/kernel/cpu/sh4a/setup-sh7722.c                   |  666 ---
 arch/sh/kernel/cpu/sh4a/setup-sh7723.c                   |  644 ---
 arch/sh/kernel/cpu/sh4a/setup-sh7724.c                   | 1288 ------
 arch/sh/kernel/cpu/sh4a/setup-sh7734.c                   |  621 ---
 arch/sh/kernel/cpu/sh4a/setup-sh7757.c                   | 1242 ------
 arch/sh/kernel/cpu/sh4a/setup-sh7763.c                   |  455 --
 arch/sh/kernel/cpu/sh4a/setup-sh7770.c                   |  571 ---
 arch/sh/kernel/cpu/sh4a/setup-sh7780.c                   |  505 --
 arch/sh/kernel/cpu/sh4a/setup-sh7785.c                   |  608 ---
 arch/sh/kernel/cpu/sh4a/setup-sh7786.c                   |  841 ----
 arch/sh/kernel/cpu/sh4a/setup-shx3.c                     |  396 --
 arch/sh/kernel/cpu/sh4a/smp-shx3.c                       |  146 
 arch/sh/kernel/cpu/sh4a/ubc.c                            |  130 
 arch/sh/kernel/cpu/shmobile/Makefile                     |    8 
 arch/sh/kernel/cpu/shmobile/cpuidle.c                    |   95 
 arch/sh/kernel/cpu/shmobile/pm.c                         |  153 
 arch/sh/kernel/cpu/shmobile/sleep.S                      |  402 --
 arch/sh/kernel/crash_dump.c                              |   27 
 arch/sh/kernel/debugtraps.S                              |   38 
 arch/sh/kernel/disassemble.c                             |  572 ---
 arch/sh/kernel/dma-coherent.c                            |   33 
 arch/sh/kernel/dumpstack.c                               |  156 
 arch/sh/kernel/dwarf.c                                   | 1206 ------
 arch/sh/kernel/entry-common.S                            |  400 --
 arch/sh/kernel/ftrace.c                                  |  365 -
 arch/sh/kernel/head_32.S                                 |  365 -
 arch/sh/kernel/hw_breakpoint.c                           |  408 --
 arch/sh/kernel/idle.c                                    |   57 
 arch/sh/kernel/io.c                                      |  111 
 arch/sh/kernel/io_trapped.c                              |  291 -
 arch/sh/kernel/iomap.c                                   |  162 
 arch/sh/kernel/ioport.c                                  |   41 
 arch/sh/kernel/irq.c                                     |  249 -
 arch/sh/kernel/irq_32.c                                  |   54 
 arch/sh/kernel/kdebugfs.c                                |   14 
 arch/sh/kernel/kgdb.c                                    |  378 -
 arch/sh/kernel/kprobes.c                                 |  452 --
 arch/sh/kernel/machine_kexec.c                           |  204 -
 arch/sh/kernel/machvec.c                                 |  122 
 arch/sh/kernel/module.c                                  |  104 
 arch/sh/kernel/nmi_debug.c                               |   75 
 arch/sh/kernel/perf_callchain.c                          |   32 
 arch/sh/kernel/perf_event.c                              |  363 -
 arch/sh/kernel/process.c                                 |   77 
 arch/sh/kernel/process_32.c                              |  197 -
 arch/sh/kernel/ptrace.c                                  |   34 
 arch/sh/kernel/ptrace_32.c                               |  487 --
 arch/sh/kernel/reboot.c                                  |   96 
 arch/sh/kernel/relocate_kernel.S                         |  230 -
 arch/sh/kernel/return_address.c                          |   56 
 arch/sh/kernel/setup.c                                   |  356 -
 arch/sh/kernel/sh_bios.c                                 |  169 
 arch/sh/kernel/sh_ksyms_32.c                             |  118 
 arch/sh/kernel/signal_32.c                               |  507 --
 arch/sh/kernel/smp.c                                     |  471 --
 arch/sh/kernel/stacktrace.c                              |   79 
 arch/sh/kernel/swsusp.c                                  |   35 
 arch/sh/kernel/sys_sh.c                                  |   96 
 arch/sh/kernel/sys_sh32.c                                |   61 
 arch/sh/kernel/syscalls/Makefile                         |   32 
 arch/sh/kernel/syscalls/syscall.tbl                      |  455 --
 arch/sh/kernel/syscalls_32.S                             |   17 
 arch/sh/kernel/time.c                                    |   45 
 arch/sh/kernel/topology.c                                |   74 
 arch/sh/kernel/traps.c                                   |  204 -
 arch/sh/kernel/traps_32.c                                |  795 ----
 arch/sh/kernel/unwinder.c                                |  165 
 arch/sh/kernel/vmlinux.lds.S                             |   82 
 arch/sh/kernel/vsyscall/.gitignore                       |    2 
 arch/sh/kernel/vsyscall/Makefile                         |   36 
 arch/sh/kernel/vsyscall/vsyscall-note.S                  |   26 
 arch/sh/kernel/vsyscall/vsyscall-sigreturn.S             |   75 
 arch/sh/kernel/vsyscall/vsyscall-syscall.S               |   11 
 arch/sh/kernel/vsyscall/vsyscall-trapa.S                 |   40 
 arch/sh/kernel/vsyscall/vsyscall.c                       |   93 
 arch/sh/kernel/vsyscall/vsyscall.lds.S                   |   85 
 arch/sh/lib/Makefile                                     |   32 
 arch/sh/lib/__clear_user.S                               |  109 
 arch/sh/lib/ashiftrt.S                                   |  128 
 arch/sh/lib/ashldi3.c                                    |   30 
 arch/sh/lib/ashlsi3.S                                    |  189 
 arch/sh/lib/ashrdi3.c                                    |   32 
 arch/sh/lib/ashrsi3.S                                    |  179 
 arch/sh/lib/checksum.S                                   |  365 -
 arch/sh/lib/copy_page.S                                  |  390 --
 arch/sh/lib/delay.c                                      |   54 
 arch/sh/lib/div64-generic.c                              |   20 
 arch/sh/lib/div64.S                                      |   47 
 arch/sh/lib/io.c                                         |   79 
 arch/sh/lib/libgcc.h                                     |   27 
 arch/sh/lib/lshrdi3.c                                    |   30 
 arch/sh/lib/lshrsi3.S                                    |  188 
 arch/sh/lib/mcount.S                                     |  287 -
 arch/sh/lib/memchr.S                                     |   27 
 arch/sh/lib/memcpy-sh4.S                                 |  800 ----
 arch/sh/lib/memcpy.S                                     |  228 -
 arch/sh/lib/memmove.S                                    |  255 -
 arch/sh/lib/memset-sh4.S                                 |  108 
 arch/sh/lib/memset.S                                     |   59 
 arch/sh/lib/movmem.S                                     |  217 -
 arch/sh/lib/strlen.S                                     |   71 
 arch/sh/lib/udiv_qrnnd.S                                 |   60 
 arch/sh/lib/udivsi3.S                                    |   66 
 arch/sh/lib/udivsi3_i4i-Os.S                             |  128 
 arch/sh/lib/udivsi3_i4i.S                                |  645 ---
 arch/sh/math-emu/Makefile                                |    2 
 arch/sh/math-emu/math.c                                  |  506 --
 arch/sh/math-emu/sfp-util.h                              |   73 
 arch/sh/mm/Kconfig                                       |  254 -
 arch/sh/mm/Makefile                                      |   45 
 arch/sh/mm/alignment.c                                   |  189 
 arch/sh/mm/asids-debugfs.c                               |   59 
 arch/sh/mm/cache-debugfs.c                               |  109 
 arch/sh/mm/cache-j2.c                                    |   64 
 arch/sh/mm/cache-sh2.c                                   |   90 
 arch/sh/mm/cache-sh2a.c                                  |  188 
 arch/sh/mm/cache-sh3.c                                   |  102 
 arch/sh/mm/cache-sh4.c                                   |  390 --
 arch/sh/mm/cache-sh7705.c                                |  194 -
 arch/sh/mm/cache-shx3.c                                  |   44 
 arch/sh/mm/cache.c                                       |  360 -
 arch/sh/mm/consistent.c                                  |   65 
 arch/sh/mm/extable_32.c                                  |   24 
 arch/sh/mm/fault.c                                       |  504 --
 arch/sh/mm/flush-sh4.c                                   |  111 
 arch/sh/mm/hugetlbpage.c                                 |   82 
 arch/sh/mm/init.c                                        |  424 --
 arch/sh/mm/ioremap.c                                     |  192 -
 arch/sh/mm/ioremap.h                                     |   23 
 arch/sh/mm/ioremap_fixed.c                               |  135 
 arch/sh/mm/kmap.c                                        |   65 
 arch/sh/mm/mmap.c                                        |  184 
 arch/sh/mm/nommu.c                                       |   98 
 arch/sh/mm/numa.c                                        |   56 
 arch/sh/mm/pgtable.c                                     |   57 
 arch/sh/mm/pmb.c                                         |  887 ----
 arch/sh/mm/sram.c                                        |   35 
 arch/sh/mm/tlb-debugfs.c                                 |  160 
 arch/sh/mm/tlb-pteaex.c                                  |  106 
 arch/sh/mm/tlb-sh3.c                                     |   95 
 arch/sh/mm/tlb-sh4.c                                     |  108 
 arch/sh/mm/tlb-urb.c                                     |   93 
 arch/sh/mm/tlbex_32.c                                    |   82 
 arch/sh/mm/tlbflush_32.c                                 |  137 
 arch/sh/mm/uncached.c                                    |   44 
 arch/sh/tools/Makefile                                   |   16 
 arch/sh/tools/gen-mach-types                             |   48 
 arch/sh/tools/mach-types                                 |   67 
 b/Documentation/arch.rst                                 |    1 
 b/Documentation/watchdog/watchdog-parameters.rst         |   12 
 b/MAINTAINERS                                            |   10 
 b/drivers/Makefile                                       |    1 
 b/drivers/base/platform.c                                |    4 
 b/drivers/clocksource/sh_cmt.c                           |   16 
 b/drivers/clocksource/sh_mtu2.c                          |   16 
 b/drivers/clocksource/sh_tmu.c                           |   17 
 b/drivers/cpufreq/Kconfig                                |   14 
 b/drivers/cpufreq/Makefile                               |    1 
 b/drivers/dma/sh/Kconfig                                 |   20 
 b/drivers/dma/sh/Makefile                                |   13 
 b/drivers/gpu/drm/Kconfig                                |    2 
 b/drivers/gpu/drm/Makefile                               |    1 
 b/drivers/i2c/busses/Kconfig                             |   13 
 b/drivers/i2c/busses/Makefile                            |    1 
 b/drivers/input/keyboard/Kconfig                         |   10 
 b/drivers/input/keyboard/Makefile                        |    1 
 b/drivers/media/platform/renesas/Kconfig                 |   11 
 b/drivers/media/platform/renesas/Makefile                |    1 
 b/drivers/mmc/host/Kconfig                               |    6 
 b/drivers/mmc/host/sh_mmcif.c                            |   21 
 b/drivers/mtd/nand/raw/Kconfig                           |    8 
 b/drivers/mtd/nand/raw/Makefile                          |    1 
 b/drivers/net/ethernet/8390/Kconfig                      |   14 
 b/drivers/net/ethernet/8390/Makefile                     |    1 
 b/drivers/net/ethernet/renesas/Kconfig                   |    2 
 b/drivers/net/ethernet/smsc/Kconfig                      |    4 
 b/drivers/pinctrl/renesas/Kconfig                        |   63 
 b/drivers/pinctrl/renesas/Makefile                       |   27 
 b/drivers/pinctrl/renesas/core.c                         |  598 ---
 b/drivers/rtc/Kconfig                                    |    4 
 b/drivers/rtc/rtc-sh.c                                   |   18 
 b/drivers/spi/Kconfig                                    |   24 
 b/drivers/spi/Makefile                                   |    3 
 b/drivers/tty/serial/Kconfig                             |    3 
 b/drivers/tty/serial/sh-sci.c                            |   57 
 b/drivers/tty/vt/keyboard.c                              |    2 
 b/drivers/usb/host/Kconfig                               |   18 
 b/drivers/usb/host/ehci-hcd.c                            |    7 
 b/drivers/usb/renesas_usbhs/Kconfig                      |    2 
 b/drivers/video/console/Kconfig                          |    2 
 b/drivers/video/fbdev/Kconfig                            |   17 
 b/drivers/video/fbdev/Makefile                           |    1 
 b/drivers/video/logo/Kconfig                             |   15 
 b/drivers/video/logo/Makefile                            |    3 
 b/drivers/video/logo/logo.c                              |   12 
 b/drivers/watchdog/Kconfig                               |   20 
 b/drivers/watchdog/Makefile                              |    3 
 b/fs/Kconfig.binfmt                                      |    2 
 b/fs/minix/Kconfig                                       |    2 
 b/include/linux/cpuhotplug.h                             |    1 
 b/include/linux/platform_device.h                        |   15 
 b/include/linux/sh_intc.h                                |    4 
 b/include/linux/shdma-base.h                             |    4 
 b/init/Kconfig                                           |    2 
 b/kernel/sysctl.c                                        |    3 
 b/lib/Kconfig.debug                                      |    2 
 b/lib/math/div64.c                                       |    4 
 b/lib/test_user_copy.c                                   |    3 
 b/scripts/coccinelle/misc/cond_no_effect.cocci           |   13 
 b/scripts/head-object-list.txt                           |    1 
 b/sound/Kconfig                                          |    2 
 b/sound/Makefile                                         |    2 
 b/sound/soc/sh/Kconfig                                   |   48 
 b/sound/soc/sh/Makefile                                  |   16 
 b/sound/soc/sh/fsi.c                                     |    9 
 b/tools/include/asm/barrier.h                            |    2 
 b/tools/perf/util/dwarf-regs.c                           |    1 
 drivers/cpufreq/sh-cpufreq.c                             |  175 
 drivers/dma/sh/shdma-base.c                              | 1052 -----
 drivers/dma/sh/shdma.h                                   |   61 
 drivers/dma/sh/shdmac.c                                  |  938 ----
 drivers/gpu/drm/shmobile/Kconfig                         |   12 
 drivers/gpu/drm/shmobile/Makefile                        |    8 
 drivers/gpu/drm/shmobile/shmob_drm_backlight.c           |   82 
 drivers/gpu/drm/shmobile/shmob_drm_backlight.h           |   19 
 drivers/gpu/drm/shmobile/shmob_drm_crtc.c                |  683 ---
 drivers/gpu/drm/shmobile/shmob_drm_crtc.h                |   55 
 drivers/gpu/drm/shmobile/shmob_drm_drv.c                 |  303 -
 drivers/gpu/drm/shmobile/shmob_drm_drv.h                 |   42 
 drivers/gpu/drm/shmobile/shmob_drm_kms.c                 |  150 
 drivers/gpu/drm/shmobile/shmob_drm_kms.h                 |   29 
 drivers/gpu/drm/shmobile/shmob_drm_plane.c               |  261 -
 drivers/gpu/drm/shmobile/shmob_drm_plane.h               |   19 
 drivers/gpu/drm/shmobile/shmob_drm_regs.h                |  310 -
 drivers/i2c/busses/i2c-sh7760.c                          |  565 --
 drivers/input/keyboard/sh_keysc.c                        |  334 -
 drivers/media/platform/renesas/sh_vou.c                  | 1375 -------
 drivers/mtd/nand/raw/sh_flctl.c                          | 1234 ------
 drivers/net/ethernet/8390/stnic.c                        |  302 -
 drivers/pinctrl/renesas/pfc-sh7203.c                     | 1577 --------
 drivers/pinctrl/renesas/pfc-sh7264.c                     | 2131 -----------
 drivers/pinctrl/renesas/pfc-sh7269.c                     | 2851 ---------------
 drivers/pinctrl/renesas/pfc-sh7720.c                     | 1201 ------
 drivers/pinctrl/renesas/pfc-sh7722.c                     | 1703 --------
 drivers/pinctrl/renesas/pfc-sh7723.c                     | 1902 ----------
 drivers/pinctrl/renesas/pfc-sh7724.c                     | 2177 -----------
 drivers/pinctrl/renesas/pfc-sh7734.c                     | 2408 ------------
 drivers/pinctrl/renesas/pfc-sh7757.c                     | 2219 -----------
 drivers/pinctrl/renesas/pfc-sh7785.c                     | 1258 ------
 drivers/pinctrl/renesas/pfc-sh7786.c                     |  809 ----
 drivers/pinctrl/renesas/pfc-shx3.c                       |  557 --
 drivers/sh/Kconfig                                       |    6 
 drivers/sh/Makefile                                      |   12 
 drivers/sh/clk/Makefile                                  |    4 
 drivers/sh/clk/core.c                                    |  624 ---
 drivers/sh/clk/cpg.c                                     |  477 --
 drivers/sh/intc/Kconfig                                  |   44 
 drivers/sh/intc/Makefile                                 |    6 
 drivers/sh/intc/access.c                                 |  246 -
 drivers/sh/intc/balancing.c                              |   97 
 drivers/sh/intc/chip.c                                   |  211 -
 drivers/sh/intc/core.c                                   |  501 --
 drivers/sh/intc/handle.c                                 |  306 -
 drivers/sh/intc/internals.h                              |  191 -
 drivers/sh/intc/irqdomain.c                              |   68 
 drivers/sh/intc/userimask.c                              |   84 
 drivers/sh/intc/virq-debugfs.c                           |   54 
 drivers/sh/intc/virq.c                                   |  269 -
 drivers/sh/maple/Makefile                                |    4 
 drivers/sh/maple/maple.c                                 |  895 ----
 drivers/sh/pm_runtime.c                                  |   40 
 drivers/sh/superhyway/Makefile                           |    8 
 drivers/sh/superhyway/superhyway-sysfs.c                 |   54 
 drivers/sh/superhyway/superhyway.c                       |  234 -
 drivers/spi/spi-jcore.c                                  |  235 -
 drivers/spi/spi-sh-sci.c                                 |  197 -
 drivers/spi/spi-sh.c                                     |  474 --
 drivers/usb/host/ehci-sh.c                               |  182 
 drivers/video/fbdev/sh7760fb.c                           |  587 ---
 drivers/video/logo/logo_superh_clut224.ppm               | 1604 --------
 drivers/video/logo/logo_superh_vga16.ppm                 | 1604 --------
 drivers/watchdog/shwdt.c                                 |  344 -
 include/linux/mtd/sh_flctl.h                             |  180 
 include/linux/sh_clk.h                                   |  213 -
 include/linux/superhyway.h                               |  107 
 sound/sh/Kconfig                                         |   32 
 sound/sh/Makefile                                        |   11 
 sound/sh/aica.c                                          |  628 ---
 sound/sh/aica.h                                          |   68 
 sound/sh/sh_dac_audio.c                                  |  412 --
 sound/soc/sh/dma-sh7760.c                                |  334 -
 sound/soc/sh/hac.c                                       |  345 -
 sound/soc/sh/migor.c                                     |  205 -
 sound/soc/sh/sh7760-ac97.c                               |   72 
 sound/soc/sh/siu.h                                       |  180 
 sound/soc/sh/siu_dai.c                                   |  799 ----
 sound/soc/sh/siu_pcm.c                                   |  553 --
 sound/soc/sh/ssi.c                                       |  403 --
 896 files changed, 46 insertions(+), 138518 deletions(-)
                    
                  
                  
                          
                            
                            18
                            
                          
                          
                            
                            96
                            
                          
                          
                            
    
                          
                        
                    
                    
                        
With a Lenovo Thinkpad T14s (Gen1, Intel version), I tried to get sound
on the monitor speakers via the HDMI cable.
It didn’t work out of the box and after a bit of googling I found:
    https://forums.lenovo.com/t5/ThinkPad-T400-T500-and-newer-T-series-Laptops/…
which suggested to put
    snd_rn_pci_acp3x.dmic_acpi_check=0
on the kernel command line.
So I tried this:
$ cat /etc/modprobe.d/lenovot14s.conf 
options snd-rn-pci-acp3x dmic_acpi_check=0
And that did make it work indeed.
I have no idea what this means and why this makes it work.
-- 
Mike FABIAN <mfabian(a)redhat.com>
睡眠不足はいい仕事の敵だ。
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            10
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [PATCH] ASoC: da7219: Fix pole orientation detection on OMTP headsets when playing music
                        
                        
by David Rau 09 Feb '23
                    by David Rau 09 Feb '23
09 Feb '23
                    
                        The OMTP pin define headsets can be mis-detected as line out
instead of OMTP, causing obvious issues with audio quality.
This patch is to put increased resistances within
the device at a suitable point.
To solve this issue better, the new mechanism setup
ground switches with conditional delay control
and these allow for more stabile detection process
to operate as intended. This conditional delay control
will not impact the hardware process
but use extra system resource.
This commit improves control of ground switches in the AAD logic.
Signed-off-by: David Rau <david.rau.zg(a)renesas.com>
---
 sound/soc/codecs/da7219-aad.c | 42 ++++++++++++++++++++++++++++++-----
 sound/soc/codecs/da7219-aad.h |  1 +
 2 files changed, 37 insertions(+), 6 deletions(-)
diff --git a/sound/soc/codecs/da7219-aad.c b/sound/soc/codecs/da7219-aad.c
index bba73c44c219..08200ec259f9 100644
--- a/sound/soc/codecs/da7219-aad.c
+++ b/sound/soc/codecs/da7219-aad.c
@@ -352,9 +352,14 @@ static irqreturn_t da7219_aad_irq_thread(int irq, void *data)
 	struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
 	struct da7219_priv *da7219 = snd_soc_component_get_drvdata(component);
 	u8 events[DA7219_AAD_IRQ_REG_MAX];
-	u8 statusa;
+	u8 statusa, srm_st;
 	int i, report = 0, mask = 0;
 
+	srm_st = snd_soc_component_read(component, DA7219_PLL_SRM_STS) & DA7219_PLL_SRM_STS_MCLK;
+	msleep(da7219_aad->gnd_switch_delay * ((srm_st == 0x0) ? 2 : 1) - 4);
+	/* Enable ground switch */
+	snd_soc_component_update_bits(component, 0xFB, 0x01, 0x01);
+
 	/* Read current IRQ events */
 	regmap_bulk_read(da7219->regmap, DA7219_ACCDET_IRQ_EVENT_A,
 			 events, DA7219_AAD_IRQ_REG_MAX);
@@ -454,8 +459,8 @@ static irqreturn_t da7219_aad_irq_thread(int irq, void *data)
 			snd_soc_dapm_disable_pin(dapm, "Mic Bias");
 			snd_soc_dapm_sync(dapm);
 
-			/* Enable ground switch */
-			snd_soc_component_update_bits(component, 0xFB, 0x01, 0x01);
+			/* Disable ground switch */
+			snd_soc_component_update_bits(component, 0xFB, 0x01, 0x00);
 		}
 	}
 
@@ -831,6 +836,32 @@ static void da7219_aad_handle_pdata(struct snd_soc_component *component)
 	}
 }
 
+static void da7219_aad_handle_gnd_switch_time(struct snd_soc_component *component)
+{
+	struct da7219_priv *da7219 = snd_soc_component_get_drvdata(component);
+	struct da7219_aad_priv *da7219_aad = da7219->aad;
+	u8 jack_det;
+
+	jack_det = snd_soc_component_read(component, DA7219_ACCDET_CONFIG_2)
+		& DA7219_JACK_DETECT_RATE_MASK;
+	switch (jack_det) {
+	case 0x00:
+		da7219_aad->gnd_switch_delay = 32;
+		break;
+	case 0x10:
+		da7219_aad->gnd_switch_delay = 64;
+		break;
+	case 0x20:
+		da7219_aad->gnd_switch_delay = 128;
+		break;
+	case 0x30:
+		da7219_aad->gnd_switch_delay = 256;
+		break;
+	default:
+		da7219_aad->gnd_switch_delay = 32;
+		break;
+	}
+}
 
 /*
  * Suspend/Resume
@@ -908,9 +939,6 @@ int da7219_aad_init(struct snd_soc_component *component)
 	snd_soc_component_update_bits(component, DA7219_ACCDET_CONFIG_1,
 			    DA7219_BUTTON_CONFIG_MASK, 0);
 
-	/* Enable ground switch */
-	snd_soc_component_update_bits(component, 0xFB, 0x01, 0x01);
-
 	INIT_WORK(&da7219_aad->btn_det_work, da7219_aad_btn_det_work);
 	INIT_WORK(&da7219_aad->hptest_work, da7219_aad_hptest_work);
 
@@ -928,6 +956,8 @@ int da7219_aad_init(struct snd_soc_component *component)
 	regmap_bulk_write(da7219->regmap, DA7219_ACCDET_IRQ_MASK_A,
 			  &mask, DA7219_AAD_IRQ_REG_MAX);
 
+	da7219_aad_handle_gnd_switch_time(component);
+
 	return 0;
 }
 EXPORT_SYMBOL_GPL(da7219_aad_init);
diff --git a/sound/soc/codecs/da7219-aad.h b/sound/soc/codecs/da7219-aad.h
index f48a12012ef3..21fdf53095cc 100644
--- a/sound/soc/codecs/da7219-aad.h
+++ b/sound/soc/codecs/da7219-aad.h
@@ -187,6 +187,7 @@ enum da7219_aad_event_regs {
 struct da7219_aad_priv {
 	struct snd_soc_component *component;
 	int irq;
+	int gnd_switch_delay;
 
 	u8 micbias_pulse_lvl;
 	u32 micbias_pulse_time;
-- 
2.17.1
                    
                  
                  
                          
                            
                            4
                            
                          
                          
                            
                            21
                            
                          
                          
                            
    
                          
                        
                    
                    
                        Hi,
(C.C.ed to administrator of alsa-devel mailing list)
On Mon, Jan 30, 2023 at 12:40:06PM +0100, M. Armsby wrote:
>    Hi Takashi,
>    I'm writing direct because I cannot seem to get a post on AlsaDevel
>    list.
I've realized your two posts, but no reaction since they have no message
body:
* Firewire ALSA Motu and Phase24
    * https://lore.kernel.org/alsa-devel/sokos1-r6xj933yn42y-hmy3gsrfgsma-mnwe9a-…
* Firewire Motu ALSA (Re-post)
    * https://lore.kernel.org/alsa-devel/v6inx6-fwmr0r-kvajcd-kfs8u9l6m2qn2cnogd-…
Jaroslav, would I ask your opinion for the problem which perhaps dropped
the message body from his messages?
>    I need to repair my two Phase X24 (defekt caps?) and I'm having
>    problems with Traveler and other Motu interfaces on Linux.
>    Thanks for any hints or where I should post.
>    Here's  a copy of my post:
>    Hello everyone!
>    Thank you for all the hard work on this.
>    Especially Mr. Takashi Sakamoto.
>    I'm an experienced studio engineer and was a Beta tester for Samplitude
>    for years.
>    Not a programmer and have very little experience with Linux.
>    So please excuse me blundering in on this professional programmer forum
>    but I'm hoping my experience will help somehow to find bugs. I'll
>    provide any information I can or test following instructions.
>    I really would love to completely change over to Linux but I need
>    reliable drivers.
>    How can I help?
>    Here's my experience so far.
>    Around November I started testing Linux for audio as I have
>    occasionally over the last years. I was pleased to find Manjaro and
>    Sparky would detect Traveler Mk1 and Mk3 and to run so efficiently
>    compared to Win10.
>    But things would freeze.
>    Reaper has a long standing Midi bug so it was difficult at first to see
>    why my laptop would freeze on occasion.  I dissabled hardware midi in
>    the software.
>    Then I updated Sparky beginning of December and to my surprise Firewire
>    didn't work anymore. The Firewire stack must have been removed.
>    I use:
>    Dell Laptops 4310, 6510, M4800
>    Tested platforms Ardour and Reaper using Pianoteq 8
>    No JACK
>    Manjaro Kernel from 6.0 rc4? and 6.1.1 work for a limited time.
>    Sparky only works with special kernels Xanmod1 6.1.7-x64v2 but the
>    audio is completely distorted.
>    CachyOS Kernel 6.2 rc4 sounds good.
>    Common problem is freezing or loosing audio. Ardour is less sensitive
>    than Reaper but Reaper is far more efficient on CPU
>    (20% compared to 90%and more with one instance of Pianoteq 7 or 8)
>    Motu Traveler MK3 and MK1 wrong channel assignment from 1+2 (3+4 are
>    actually 1+2) and freezing or just loosing audio.
>    Motu 896Mk3 Hybrid not recognised in firewire or USB mode.
>    Shame cause its the best.
>    Motu 8pre working similarly.
>    Phase 24 working much better but still freezes or looses audio after
>    long period.
>    Tested in Ardour and Reaper.
>    I hope that's not too much at once.
>    Martin Armsby
>    M. Armsby
Thanks for the report including many issues. I apologize to trouble you.
In my opinion, the issues are not so easy since each application uses ALSA
PCM device by slightly different ways. So we need to investigate the
issue step by step to take relevant longer time than easy issues.
Before discussing about the issue, I need to ask a help about MOTU
devices. As you realized, 896 mk3 is neither supported yet, FireWire only
nor Hybrid, in IEEE 1394 bus nor Universal Serial Bus. For example, you
can see no entry for the device in module device table[1] in the file
which consists of snd-firewire-motu driver.
The reason is apparent; no one provides information enough to support
it. Then I would like you to help me to integrate for it in the case in
IEEE 1394 bus.
I maintain a remote repository for my collection of configuration ROM
image which includes identity information of each node in IEEE 1394 bus[2].
The information is useful both to make the entry of module device table
and to make hardware database[3] in systemd project.
When 896 mk3 Hybrid is connected to IEEE 1394 bus and only connected to
the bus, Linux FireWire subsystem detects it as '/dev/fw1'. Then the
rom image is exported to an node on sysfs. You can retrieve the content
by the command line below:
$ cat /sys/bus/firewire/devices/fw1/config_rom > motu-896mk3hybrid.img
If retrieved successfully, please send it to me. I don't mind to receive
it to private message, mailing list, any upload services.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/sou…
[2] https://github.com/takaswie/am-config-roms
[3] https://github.com/systemd/systemd/blob/main/hwdb.d/80-ieee1394-unit-functi…
Thanks
Takashi Sakamoto
                    
                  
                  
                          
                            
                            3
                            
                          
                          
                            
                            4
                            
                          
                          
                            
    
                          
                        
                    06 Feb '23
                    
                        Pink Sardine(ps) platform is based on ACP6.3 Architecture.
ACP6.3 IP has two soundwire controller instance support.
This patchset add support for Soundwire controller on Pink Sardine
platform.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda(a)amd.com>
Vijendar Mukunda (19):
  ASoC: amd: ps: create platform devices based on acp config
  soundwire: amd: Add support for AMD Master driver
  soundwire: amd: register sdw controller dai ops
  soundwire: amd: enable build for AMD soundwire master driver
  soundwire: amd: add soundwire interrupt handling
  ASoC: amd: ps: add support for soundwire interrupts in acp pci driver
  ASoC: amd: ps: add soundwire dma driver for pink sardine platform
  ASoC: amd: ps: add soundwire dma driver dma ops
  ASoC: amd: ps: add support for Soundwire DMA interrupts
  ASoC: amd: ps: enable Soundwire DMA driver build
  ASoC: amd: update comments in Kconfig file
  ASoC: amd: ps: Add soundwire specific checks in pci driver in pm ops.
  ASoC: amd: ps: add support for runtime pm ops for soundwire dma driver
  soundwire: amd: add runtime pm ops for AMD master driver
  soundwire: amd: add startup and shutdown dai ops
  soundwire: amd: handle wake enable interrupt
  soundwire: amd: add pm_prepare callback and pm ops support
  ASoC: amd: ps: implement system level pm ops for soundwire dma driver
  ASoC: amd: ps: increase runtime suspend delay
 drivers/soundwire/Kconfig         |    9 +
 drivers/soundwire/Makefile        |    4 +
 drivers/soundwire/amd_master.c    | 1734 +++++++++++++++++++++++++++++
 drivers/soundwire/amd_master.h    |  284 +++++
 include/linux/soundwire/sdw_amd.h |   65 ++
 sound/soc/amd/Kconfig             |    3 +-
 sound/soc/amd/ps/Makefile         |    2 +
 sound/soc/amd/ps/acp63.h          |   98 +-
 sound/soc/amd/ps/pci-ps.c         |  383 ++++++-
 sound/soc/amd/ps/ps-sdw-dma.c     |  728 ++++++++++++
 10 files changed, 3287 insertions(+), 23 deletions(-)
 create mode 100644 drivers/soundwire/amd_master.c
 create mode 100644 drivers/soundwire/amd_master.h
 create mode 100644 include/linux/soundwire/sdw_amd.h
 create mode 100644 sound/soc/amd/ps/ps-sdw-dma.c
-- 
2.34.1
                    
                  
                  
                          
                            
                            8
                            
                          
                          
                            
                            90
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [PATCH][next] ASoC: uapi: Replace zero-length arrays with __DECLARE_FLEX_ARRAY() helper
                        
                        
by Gustavo A. R. Silva 03 Feb '23
                    by Gustavo A. R. Silva 03 Feb '23
03 Feb '23
                    
                        Zero-length arrays are deprecated and we are moving towards adopting
C99 flexible-array members, instead. So, replace zero-length arrays
declarations in anonymous union with the new __DECLARE_FLEX_ARRAY()
helper macro.
This helper allows for flexible-array members in unions.
Link: https://github.com/KSPP/linux/issues/193
Link: https://github.com/KSPP/linux/issues/227
Link: https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
Signed-off-by: Gustavo A. R. Silva <gustavoars(a)kernel.org>
---
 include/uapi/sound/asoc.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/uapi/sound/asoc.h b/include/uapi/sound/asoc.h
index 053949287ce8..dd8ad790fc15 100644
--- a/include/uapi/sound/asoc.h
+++ b/include/uapi/sound/asoc.h
@@ -226,9 +226,9 @@ struct snd_soc_tplg_vendor_array {
 	__le32 type;	/* SND_SOC_TPLG_TUPLE_TYPE_ */
 	__le32 num_elems;	/* number of elements in array */
 	union {
-		struct snd_soc_tplg_vendor_uuid_elem uuid[0];
-		struct snd_soc_tplg_vendor_value_elem value[0];
-		struct snd_soc_tplg_vendor_string_elem string[0];
+		__DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_uuid_elem, uuid);
+		__DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_value_elem, value);
+		__DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_string_elem, string);
 	};
 } __attribute__((packed));
 
-- 
2.34.1
                    
                  
                  
                          
                            
                            5
                            
                          
                          
                            
                            11
                            
                          
                          
                            
    
                          
                        
                    
                    
                        I am trying to only use a static /dev. I have opened an issue about this on
GitHub and got it to work only as the root user. This resembles my
experience with xorg. In that case I had to use the suid use flag. Is there
an equivalent in this situation?
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            1