/*
 * edma-pcm.c - eDMA PCM driver using dmaengine for AM3xxx, AM4xxx
 *
 * Copyright (C) 2014 Texas Instruments, Inc.
 *
 * Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
 *
 * Based on: sound/soc/tegra/tegra_pcm.c
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 */

#include <linux/module.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
#include <sound/soc.h>
#include <sound/dmaengine_pcm.h>
#include <linux/edma.h>

#include "edma-pcm.h"

static const struct snd_pcm_hardware edma_pcm_hardware = {
	.info			= SNDRV_PCM_INFO_MMAP |
				  SNDRV_PCM_INFO_MMAP_VALID |
				  SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_RESUME |
				  SNDRV_PCM_INFO_NO_PERIOD_WAKEUP |
				  SNDRV_PCM_INFO_INTERLEAVED,
	.buffer_bytes_max	= 128 * 1024,
	.period_bytes_min	= 32,
	.period_bytes_max	= 64 * 1024,
	.periods_min		= 2,
	.periods_max		= 19, /* Limit by edma dmaengine driver */
};

static const struct snd_dmaengine_pcm_config edma_dmaengine_pcm_config = {
	.pcm_hardware = &edma_pcm_hardware,
	.prepare_slave_config = snd_dmaengine_pcm_prepare_slave_config,
	.compat_filter_fn = edma_filter_fn,
	.prealloc_buffer_size = 128 * 1024,
};

int edma_pcm_platform_register(struct device *dev)
{
	return devm_snd_dmaengine_pcm_register(dev, &edma_dmaengine_pcm_config,
					SND_DMAENGINE_PCM_FLAG_COMPAT);
}
EXPORT_SYMBOL_GPL(edma_pcm_platform_register);

MODULE_AUTHOR("Peter Ujfalusi <peter.ujfalusi@ti.com>");
MODULE_DESCRIPTION("eDMA PCM ASoC platform driver");
MODULE_LICENSE("GPL");
0ca6e44a3af8ce9274379'>tree</a><a class='active' href='/cgit.cgi/linux/net-next.git/commit/drivers/usb/storage/unusual_isd200.h?id=b98acbff9a05b371c5f0ca6e44a3af8ce9274379'>commit</a><a href='/cgit.cgi/linux/net-next.git/diff/drivers/usb/storage/unusual_isd200.h?id=b98acbff9a05b371c5f0ca6e44a3af8ce9274379'>diff</a></td><td class='form'><form class='right' method='get' action='/cgit.cgi/linux/net-next.git/log/drivers/usb/storage/unusual_isd200.h'>
<input type='hidden' name='id' value='b98acbff9a05b371c5f0ca6e44a3af8ce9274379'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/cgit.cgi/linux/net-next.git/commit/?id=b98acbff9a05b371c5f0ca6e44a3af8ce9274379'>root</a>/<a href='/cgit.cgi/linux/net-next.git/commit/drivers?id=b98acbff9a05b371c5f0ca6e44a3af8ce9274379'>drivers</a>/<a href='/cgit.cgi/linux/net-next.git/commit/drivers/usb?id=b98acbff9a05b371c5f0ca6e44a3af8ce9274379'>usb</a>/<a href='/cgit.cgi/linux/net-next.git/commit/drivers/usb/storage?id=b98acbff9a05b371c5f0ca6e44a3af8ce9274379'>storage</a>/<a href='/cgit.cgi/linux/net-next.git/commit/drivers/usb/storage/unusual_isd200.h?id=b98acbff9a05b371c5f0ca6e44a3af8ce9274379'>unusual_isd200.h</a></div><div class='content'><div class='cgit-panel'><b>diff options</b><form method='get'><input type='hidden' name='id' value='b98acbff9a05b371c5f0ca6e44a3af8ce9274379'/><table><tr><td colspan='2'/></tr><tr><td class='label'>context:</td><td class='ctrl'><select name='context' onchange='this.form.submit();'><option value='1'>1</option><option value='2'>2</option><option value='3' selected='selected'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option><option value='9'>9</option><option value='10'>10</option><option value='15'>15</option><option value='20'>20</option><option value='25'>25</option><option value='30'>30</option><option value='35'>35</option><option value='40'>40</option></select></td></tr><tr><td class='label'>space:</td><td class='ctrl'><select name='ignorews' onchange='this.form.submit();'><option value='0' selected='selected'>include</option><option value='1'>ignore</option></select></td></tr><tr><td class='label'>mode:</td><td class='ctrl'><select name='dt' onchange='this.form.submit();'><option value='0' selected='selected'>unified</option><option value='1'>ssdiff</option><option value='2'>stat only</option></select></td></tr><tr><td/><td class='ctrl'><noscript><input type='submit' value='reload'/></noscript></td></tr></table></form></div><table summary='commit info' class='commit-info'>
<tr><th>author</th><td>Colin Ian King &lt;colin.king@canonical.com&gt;</td><td class='right'>2017-01-11 15:36:20 +0000</td></tr>
<tr><th>committer</th><td>Mark Brown &lt;broonie@kernel.org&gt;</td><td class='right'>2017-01-18 16:32:44 +0000</td></tr>
<tr><th>commit</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/commit/drivers/usb/storage/unusual_isd200.h?id=b98acbff9a05b371c5f0ca6e44a3af8ce9274379'>b98acbff9a05b371c5f0ca6e44a3af8ce9274379</a> (<a href='/cgit.cgi/linux/net-next.git/patch/drivers/usb/storage/unusual_isd200.h?id=b98acbff9a05b371c5f0ca6e44a3af8ce9274379'>patch</a>)</td></tr>
<tr><th>tree</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/tree/?id=b98acbff9a05b371c5f0ca6e44a3af8ce9274379'>d6835885f859a456e62ce93621041138d6a54f9b</a> /<a href='/cgit.cgi/linux/net-next.git/tree/drivers/usb/storage/unusual_isd200.h?id=b98acbff9a05b371c5f0ca6e44a3af8ce9274379'>drivers/usb/storage/unusual_isd200.h</a></td></tr>
<tr><th>parent</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/commit/drivers/usb/storage/unusual_isd200.h?id=d00b74613fb18dfd0a5aa99270ee2e72d5c808d7'>d00b74613fb18dfd0a5aa99270ee2e72d5c808d7</a> (<a href='/cgit.cgi/linux/net-next.git/diff/drivers/usb/storage/unusual_isd200.h?id=b98acbff9a05b371c5f0ca6e44a3af8ce9274379&amp;id2=d00b74613fb18dfd0a5aa99270ee2e72d5c808d7'>diff</a>)</td></tr></table>
<div class='commit-subject'>regulator: twl6030: fix range comparison, allowing vsel = 59</div><div class='commit-msg'>The range min_uV &gt; 1350000 &amp;&amp; min_uV &lt;= 150000 is never reachable
because of a typo in the previous range check and hence vsel = 59
is never reached.  Fix the previous range check to enable the
vsel = 59 setting.

Fixes CoverityScan CID#728454 ("Logially dead code")

Signed-off-by: Colin Ian King &lt;colin.king@canonical.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</div><div class='diffstat-header'><a href='/cgit.cgi/linux/net-next.git/diff/?id=b98acbff9a05b371c5f0ca6e44a3af8ce9274379'>Diffstat</a> (limited to 'drivers/usb/storage/unusual_isd200.h')</div><table summary='diffstat' class='diffstat'>