projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'asoc/fix/dapm' into asoc-linus
[firefly-linux-kernel-4.4.55.git]
/
drivers
/
soc
/
ti
/
knav_qmss_acc.c
diff --git
a/drivers/soc/ti/knav_qmss_acc.c
b/drivers/soc/ti/knav_qmss_acc.c
index ef6f69db0bd04c06caa6c1b955e3dbbebc91677a..d2d48f2802bc45b0077c9ce39f496a07306648d9 100644
(file)
--- a/
drivers/soc/ti/knav_qmss_acc.c
+++ b/
drivers/soc/ti/knav_qmss_acc.c
@@
-261,6
+261,10
@@
static int knav_range_setup_acc_irq(struct knav_range_info *range,
if (old && !new) {
dev_dbg(kdev->dev, "setup-acc-irq: freeing %s for channel %s\n",
acc->name, acc->name);
if (old && !new) {
dev_dbg(kdev->dev, "setup-acc-irq: freeing %s for channel %s\n",
acc->name, acc->name);
+ ret = irq_set_affinity_hint(irq, NULL);
+ if (ret)
+ dev_warn(range->kdev->dev,
+ "Failed to set IRQ affinity\n");
free_irq(irq, range);
}
free_irq(irq, range);
}
@@
-482,8
+486,8
@@
struct knav_range_ops knav_acc_range_ops = {
* Return 0 on success or error
*/
int knav_init_acc_range(struct knav_device *kdev,
* Return 0 on success or error
*/
int knav_init_acc_range(struct knav_device *kdev,
-
struct device_node *node,
-
struct knav_range_info *range)
+ struct device_node *node,
+ struct knav_range_info *range)
{
struct knav_acc_channel *acc;
struct knav_pdsp_info *pdsp;
{
struct knav_acc_channel *acc;
struct knav_pdsp_info *pdsp;
@@
-526,6
+530,12
@@
int knav_init_acc_range(struct knav_device *kdev,
return -EINVAL;
}
return -EINVAL;
}
+ if (!pdsp->started) {
+ dev_err(kdev->dev, "pdsp id %d not started for range %s\n",
+ info->pdsp_id, range->name);
+ return -ENODEV;
+ }
+
info->pdsp = pdsp;
channels = range->num_queues;
if (of_get_property(node, "multi-queue", NULL)) {
info->pdsp = pdsp;
channels = range->num_queues;
if (of_get_property(node, "multi-queue", NULL)) {