1. 16 11月, 2015 1 次提交
    • K
      ASoC: rsnd: DMA become SSI/SRC member · 232c00b6
      Kuninori Morimoto 提交于
      Renesas sound needs many devices
      (SSI/SSIU/SRC/CTU/MIX/DVC/CMD/AudioDMAC/AudioDMACpp).
      SSI/SRC/CTU/MIX/DVC are implemented as module.
      SSI parent, SSIU are implemented as part of SSI
      CMD is implemented as part of CTU/MIX/DVC
      AudioDMAC/AudioDMACpp are implemented as part of SSI/SRC
      It is nice sense that these all devices are implemented as mod.
      
      Current rsnd_mod is member of rsnd_mod. But the DMA user is only
      SSI/SRC. This DMA will be implemented as module. As 1st step, DMA
      become SSI/SRC member by this patch.
      Signed-off-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      232c00b6
  2. 22 10月, 2015 2 次提交
  3. 07 10月, 2015 1 次提交
  4. 15 9月, 2015 3 次提交
  5. 18 7月, 2015 2 次提交
  6. 17 7月, 2015 12 次提交
  7. 10 7月, 2015 1 次提交
  8. 16 6月, 2015 11 次提交
  9. 22 5月, 2015 1 次提交
    • K
      ASoC: rsnd: spin lock for interrupt handler · 02299d98
      Kuninori Morimoto 提交于
      Renesas R-Car driver interrupt handler was not locked before.
      But now, SSI/SRC interrupt handler calls restart function
      which should be called under spin lock.
      Below error might happen witout this patch.
      
      Unable to handle kernel NULL pointer dereference at virtual address 00000048
      pgd = edfac000
      [00000048] *pgd=6e0f0831, *pte=00000000, *ppte=00000000
      Internal error: Oops: 17 [#1] SMP ARM
      CPU: 0 PID: 2009 Comm: aplay Not tainted 4.1.0-rc2-dirty #4
      Hardware name: Generic R8A7790 (Flattened Device Tree)
      task: eeac9040 ti: eebe8000 task.ti: eebe8000
      PC is at rsnd_get_adinr+0x28/0x60
      LR is at rsnd_src_ssiu_start+0xdc/0x19c
      pc : [<c0409790>]    lr : [<c040c068>]    psr: a0000193
      sp : eebe9e58  ip : eebe9e68  fp : eebe9e64
      r10: c06ed9d0  r9 : ee919d10  r8 : 00000001
      r7 : 00000001  r6 : ee1cb090  r5 : 00000000  r4 : edcaa418
      r3 : 00000000  r2 : eea8ce00  r1 : 80000193  r0 : edcaa418
      ...
      Reported-by: NCao Minh Hiep <cm-hiep@jinso.co.jp>
      Signed-off-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Tested-by: NKeita Kobayashi <keita.kobayashi.ym@renesas.com>
      Tested by: Cao Minh Hiep <cm-hiep@jinso.co.jp>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      02299d98
  10. 28 3月, 2015 2 次提交
  11. 23 3月, 2015 1 次提交
  12. 07 3月, 2015 3 次提交
    • K
      ASoC: rsnd: 1st DMAC dma-names cares subnode · 72adc61f
      Kuninori Morimoto 提交于
      Renesas R-Car sound (= rsnd) needs 2 DMAC which are called as
      Audio DMAC (= 1st DMAC) and Audio DMAC peri peri (2nd DMAC).
      And rsnd had assumed that 1st / 2nd DMACs are implemented as DMAEngine.
      But, in result of DMA ML discussion, 2nd DMAC was concluded that it is
      not a general purpose DMAC (2nd DMAC is for Device to Device inside
      sound system). Additionally, current DMAEngine can't support Device to
      Device, and we don't have correct DT bindings for it at this point.
      So the easiest solution for it is that move it from DMAEngine to rsnd
      driver.
      
      dma-names on DT was implemented as no difference between 1st / 2nd
      DMAC's, since rsnd had assumed that both DMACs are implemented as
      DMAEngine. That style was "src_dst". But now, 2nd DMAC was implemented
      as non DMAEngine, and it doesn't need dma-names anymore. So, this
      dma-names rule is no longer needed.
      
      And additionally, dma-names was assumed that it has all
      (= SSI/SSIU/SRC/DVC) nodes under sound node.
      
      In upstream code, no SoC/platform is supporting DMA for rsnd driver yet.
      This means there is no compatible issue if this patch changes
      dma-names's rule of DT.
      
      This patch assumes dma-names for 1st DMAC are tx/rx base, and listed
      in each SSI/SRC/DVC subnode
      ex)
      	rcar_sound,dvc {
      		dvc0: dvc@0 {
      			dmas = <&audma0 0xbc>;
      			dma-names = "tx";
      		};
      	...
      
      	rcar_sound,src {
      		src0: src@0 {
      			...
      			dmas = <&audma0 0x85>, <&audma1 0x9a>;
      			dma-names = "rx", "tx";
      		};
      	...
      
      	rcar_sound,ssi {
      		ssi0: ssi@0 {
      			...
      			dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>;
      			dma-names = "rx", "tx", "rxu", "txu";
      		};
      	...
      Signed-off-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      72adc61f
    • K
      ASoC: rsnd: enable rsnd_ssi_use_busif() for DMA · e879a9dd
      Kuninori Morimoto 提交于
      Renesas R-Car sound driver uses SSI, but the DMA interfaces are
      SSI/SSIU. This interface is based on SSI/SRC/DVC connection.
      And DMA function needs to know which interface is used somehow.
      This patch enables rsnd_ssi_use_busif() for DMA.
      Signed-off-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      e879a9dd
    • K
      ASoC: rsnd: use union with rsnd_dmaen / rsnd_dmapp · 0d00a521
      Kuninori Morimoto 提交于
      Renesas R-Car needs 2 DMACs.1st DMAC is DMAEngine, and 2nd DMAC is
      implemented as local code. These 2 DMACs are never shared.
      We can use union for these.
      Signed-off-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      0d00a521