Loading sound/soc/fsl/imx-ssi.c +3 −3 Original line number Diff line number Diff line Loading @@ -543,7 +543,7 @@ static int imx_ssi_probe(struct platform_device *pdev) ret); goto failed_clk; } clk_enable(ssi->clk); clk_prepare_enable(ssi->clk); res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) { Loading Loading @@ -641,7 +641,7 @@ static int imx_ssi_probe(struct platform_device *pdev) failed_ioremap: release_mem_region(res->start, resource_size(res)); failed_get_resource: clk_disable(ssi->clk); clk_disable_unprepare(ssi->clk); clk_put(ssi->clk); failed_clk: kfree(ssi); Loading @@ -664,7 +664,7 @@ static int __devexit imx_ssi_remove(struct platform_device *pdev) iounmap(ssi->base); release_mem_region(res->start, resource_size(res)); clk_disable(ssi->clk); clk_disable_unprepare(ssi->clk); clk_put(ssi->clk); kfree(ssi); Loading sound/soc/sh/fsi.c +16 −9 Original line number Diff line number Diff line Loading @@ -1052,6 +1052,13 @@ static int fsi_dma_quit(struct fsi_priv *fsi, struct fsi_stream *io) return 0; } static dma_addr_t fsi_dma_get_area(struct fsi_stream *io) { struct snd_pcm_runtime *runtime = io->substream->runtime; return io->dma + samples_to_bytes(runtime, io->buff_sample_pos); } static void fsi_dma_complete(void *data) { struct fsi_stream *io = (struct fsi_stream *)data; Loading @@ -1061,7 +1068,7 @@ static void fsi_dma_complete(void *data) enum dma_data_direction dir = fsi_stream_is_play(fsi, io) ? DMA_TO_DEVICE : DMA_FROM_DEVICE; dma_sync_single_for_cpu(dai->dev, io->dma, dma_sync_single_for_cpu(dai->dev, fsi_dma_get_area(io), samples_to_bytes(runtime, io->period_samples), dir); io->buff_sample_pos += io->period_samples; Loading @@ -1078,13 +1085,6 @@ static void fsi_dma_complete(void *data) snd_pcm_period_elapsed(io->substream); } static dma_addr_t fsi_dma_get_area(struct fsi_stream *io) { struct snd_pcm_runtime *runtime = io->substream->runtime; return io->dma + samples_to_bytes(runtime, io->buff_sample_pos); } static void fsi_dma_do_tasklet(unsigned long data) { struct fsi_stream *io = (struct fsi_stream *)data; Loading @@ -1110,7 +1110,7 @@ static void fsi_dma_do_tasklet(unsigned long data) len = samples_to_bytes(runtime, io->period_samples); buf = fsi_dma_get_area(io); dma_sync_single_for_device(dai->dev, io->dma, len, dir); dma_sync_single_for_device(dai->dev, buf, len, dir); sg_init_table(&sg, 1); sg_set_page(&sg, pfn_to_page(PFN_DOWN(buf)), Loading Loading @@ -1172,9 +1172,16 @@ static int fsi_dma_transfer(struct fsi_priv *fsi, struct fsi_stream *io) static void fsi_dma_push_start_stop(struct fsi_priv *fsi, struct fsi_stream *io, int start) { struct fsi_master *master = fsi_get_master(fsi); u32 clk = fsi_is_port_a(fsi) ? CRA : CRB; u32 enable = start ? DMA_ON : 0; fsi_reg_mask_set(fsi, OUT_DMAC, DMA_ON, enable); dmaengine_terminate_all(io->chan); if (fsi_is_clk_master(fsi)) fsi_master_mask_set(master, CLK_RST, clk, (enable) ? clk : 0); } static int fsi_dma_probe(struct fsi_priv *fsi, struct fsi_stream *io) Loading Loading
sound/soc/fsl/imx-ssi.c +3 −3 Original line number Diff line number Diff line Loading @@ -543,7 +543,7 @@ static int imx_ssi_probe(struct platform_device *pdev) ret); goto failed_clk; } clk_enable(ssi->clk); clk_prepare_enable(ssi->clk); res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) { Loading Loading @@ -641,7 +641,7 @@ static int imx_ssi_probe(struct platform_device *pdev) failed_ioremap: release_mem_region(res->start, resource_size(res)); failed_get_resource: clk_disable(ssi->clk); clk_disable_unprepare(ssi->clk); clk_put(ssi->clk); failed_clk: kfree(ssi); Loading @@ -664,7 +664,7 @@ static int __devexit imx_ssi_remove(struct platform_device *pdev) iounmap(ssi->base); release_mem_region(res->start, resource_size(res)); clk_disable(ssi->clk); clk_disable_unprepare(ssi->clk); clk_put(ssi->clk); kfree(ssi); Loading
sound/soc/sh/fsi.c +16 −9 Original line number Diff line number Diff line Loading @@ -1052,6 +1052,13 @@ static int fsi_dma_quit(struct fsi_priv *fsi, struct fsi_stream *io) return 0; } static dma_addr_t fsi_dma_get_area(struct fsi_stream *io) { struct snd_pcm_runtime *runtime = io->substream->runtime; return io->dma + samples_to_bytes(runtime, io->buff_sample_pos); } static void fsi_dma_complete(void *data) { struct fsi_stream *io = (struct fsi_stream *)data; Loading @@ -1061,7 +1068,7 @@ static void fsi_dma_complete(void *data) enum dma_data_direction dir = fsi_stream_is_play(fsi, io) ? DMA_TO_DEVICE : DMA_FROM_DEVICE; dma_sync_single_for_cpu(dai->dev, io->dma, dma_sync_single_for_cpu(dai->dev, fsi_dma_get_area(io), samples_to_bytes(runtime, io->period_samples), dir); io->buff_sample_pos += io->period_samples; Loading @@ -1078,13 +1085,6 @@ static void fsi_dma_complete(void *data) snd_pcm_period_elapsed(io->substream); } static dma_addr_t fsi_dma_get_area(struct fsi_stream *io) { struct snd_pcm_runtime *runtime = io->substream->runtime; return io->dma + samples_to_bytes(runtime, io->buff_sample_pos); } static void fsi_dma_do_tasklet(unsigned long data) { struct fsi_stream *io = (struct fsi_stream *)data; Loading @@ -1110,7 +1110,7 @@ static void fsi_dma_do_tasklet(unsigned long data) len = samples_to_bytes(runtime, io->period_samples); buf = fsi_dma_get_area(io); dma_sync_single_for_device(dai->dev, io->dma, len, dir); dma_sync_single_for_device(dai->dev, buf, len, dir); sg_init_table(&sg, 1); sg_set_page(&sg, pfn_to_page(PFN_DOWN(buf)), Loading Loading @@ -1172,9 +1172,16 @@ static int fsi_dma_transfer(struct fsi_priv *fsi, struct fsi_stream *io) static void fsi_dma_push_start_stop(struct fsi_priv *fsi, struct fsi_stream *io, int start) { struct fsi_master *master = fsi_get_master(fsi); u32 clk = fsi_is_port_a(fsi) ? CRA : CRB; u32 enable = start ? DMA_ON : 0; fsi_reg_mask_set(fsi, OUT_DMAC, DMA_ON, enable); dmaengine_terminate_all(io->chan); if (fsi_is_clk_master(fsi)) fsi_master_mask_set(master, CLK_RST, clk, (enable) ? clk : 0); } static int fsi_dma_probe(struct fsi_priv *fsi, struct fsi_stream *io) Loading