1. 25 Aug, 2009 4 commits
    • Shine Liu's avatar
      ASoC: S3C platform: Fix s3c2410_dma_started() called at improper time · faf907c7
      Shine Liu authored
      s3c24xx dma has the auto reload feature, when the the trnasfer is done,
      CURR_TC(DSTAT[19:0], current value of transfer count) reaches 0, and DMA
      ACK becomes 1, and then, TC(DCON[19:0]) will be loaded into CURR_TC. So
      the transmission is repeated.
      
      IRQ is issued while auto reload occurs. We change the DISRC and
      DCON[19:0] in the ISR, but at this time, the auto reload has been
      performed already. The first block is being re-transmitted by the DMA.
      
      So we need rewrite the DISRC and DCON[19:0] for the next block
      immediatly after the this block has been started to be transported.
      
      The function s3c2410_dma_started() is for this perpose, which is called
      in the form of "s3c2410_dma_ctrl(prtd->params->channel,
      S3C2410_DMAOP_STARTED);" in s3c24xx_pcm_trigger().
      
      But it is not correct. DMA transmission won't start until DMA REQ signal
      arrived, it is the time s3c24xx_snd_txctrl(1) or s3c24xx_snd_rxctrl(1)
      is called in s3c24xx_i2s_trigger().
      
      In the current framework, s3c24xx_pcm_trigger() is always called before
      s3c24xx_pcm_trigger(). So the s3c2410_dma_started() should be called in
      s3c24xx_pcm_trigger() after s3c24xx_snd_txctrl(1) or
      s3c24xx_snd_rxctrl(1) is called in this function.
      
      However, s3c2410_dma_started() is dma related, to call this function we
      should provide the channel number, which is given by
      substream->runtime->private_data->params->channel. The private_data
      points to a struct s3c24xx_runtime_data object, which is define in
      s3c24xx_pcm.c, so s3c2410_dma_started() can't be called in s3c24xx_i2s.c
      
      Fix this by moving the call to signal the DMA started to the DAI
      drivers.
      Signed-off-by: default avatarShine Liu <liuxian@redflag-linux.com>
      Signed-off-by: default avatarShine Liu <shinel@foxmail.com>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      faf907c7
    • Jarkko Nikula's avatar
      ARM: OMAP: McBSP: Merge two functions into omap_mcbsp_start/_stop · d09a2afc
      Jarkko Nikula authored
      Functionality of functions omap_mcbsp_xmit_enable and omap_mcbsp_recv_enable
      can be merged into omap_mcbsp_start and omap_mcbsp_stop since API of
      those omap_mcbsp_start and omap_mcbsp_stop was changed recently allowing
      to start and stop individually the transmitter and receiver.
      
      This cleans up the code in arch/arm/plat-omap/mcbsp.c and in
      sound/soc/omap/omap-mcbsp.c which was the only user for those removed
      functions.
      Signed-off-by: default avatarJarkko Nikula <jhnikula@gmail.com>
      Acked-by: default avatarEero Nurkkala <ext-eero.nurkkala@nokia.com>
      Cc: Peter Ujfalusi <peter.ujfalusi@nokia.com>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      d09a2afc
    • Jarkko Nikula's avatar
      ASoC: OMAP: Fix setup of XCCR and RCCR registers in McBSP DAI · 32080af7
      Jarkko Nikula authored
      Commit ca6e2ce0 is setting up few XCCR and
      RCCR bits for I2S and DPS_A formats. Part of the bits are already set
      for all formats and I believe that XDISABLE and RDISABLE bits are
      format independent.
      
      As XCCR and RCCR are found only from OMAP2430 and OMAP34xx, I move setup
      of XDISABLE and RDISABLE to where those cpu's are tested and remove format
      dependent part for simplicity.
      Signed-off-by: default avatarJarkko Nikula <jhnikula@gmail.com>
      Acked-by: default avatarEero Nurkkala <ext-eero.nurkkala@nokia.com>
      Cc: Peter Ujfalusi <peter.ujfalusi@nokia.com>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      32080af7
    • Jarkko Nikula's avatar
      OMAP: McBSP: Use textual values in DMA operating mode sysfs files · 9b300509
      Jarkko Nikula authored
      Use more descriptive than numerical value when showing and storing the
      McBSP DMA operating mode. Show function is using similar syntax than e.g.
      the led triggers so that all possible values for store function are
      printed but with current value surrounded with square brackets.
      Signed-off-by: default avatarJarkko Nikula <jhnikula@gmail.com>
      Cc: Peter Ujfalusi <peter.ujfalusi@nokia.com>
      Acked-by: default avatarEduardo Valentin <eduardo.valentin@nokia.com>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      9b300509
  2. 24 Aug, 2009 5 commits
  3. 23 Aug, 2009 2 commits
  4. 21 Aug, 2009 7 commits
  5. 20 Aug, 2009 22 commits