diff options
-rw-r--r-- | sound/soc/txx9/txx9aclc.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sound/soc/txx9/txx9aclc.c b/sound/soc/txx9/txx9aclc.c index 938a58a5a244..efed64b8b026 100644 --- a/sound/soc/txx9/txx9aclc.c +++ b/sound/soc/txx9/txx9aclc.c | |||
@@ -297,15 +297,17 @@ static int txx9aclc_pcm_new(struct snd_card *card, struct snd_soc_dai *dai, | |||
297 | static bool filter(struct dma_chan *chan, void *param) | 297 | static bool filter(struct dma_chan *chan, void *param) |
298 | { | 298 | { |
299 | struct txx9aclc_dmadata *dmadata = param; | 299 | struct txx9aclc_dmadata *dmadata = param; |
300 | char devname[20 + 2]; /* FIXME: old BUS_ID_SIZE + 2 */ | 300 | char *devname; |
301 | bool found = false; | ||
301 | 302 | ||
302 | snprintf(devname, sizeof(devname), "%s.%d", dmadata->dma_res->name, | 303 | devname = kasprintf(GFP_KERNEL, "%s.%d", dmadata->dma_res->name, |
303 | (int)dmadata->dma_res->start); | 304 | (int)dmadata->dma_res->start); |
304 | if (strcmp(dev_name(chan->device->dev), devname) == 0) { | 305 | if (strcmp(dev_name(chan->device->dev), devname) == 0) { |
305 | chan->private = &dmadata->dma_slave; | 306 | chan->private = &dmadata->dma_slave; |
306 | return true; | 307 | found = true; |
307 | } | 308 | } |
308 | return false; | 309 | kfree(devname); |
310 | return found; | ||
309 | } | 311 | } |
310 | 312 | ||
311 | static int txx9aclc_dma_init(struct txx9aclc_soc_device *dev, | 313 | static int txx9aclc_dma_init(struct txx9aclc_soc_device *dev, |