| .. | .. |
|---|
| 2 | 2 | // Copyright (c) 2011-2017, The Linux Foundation. All rights reserved. |
|---|
| 3 | 3 | // Copyright (c) 2018, Linaro Limited |
|---|
| 4 | 4 | |
|---|
| 5 | | -#include <linux/slab.h> |
|---|
| 6 | | -#include <linux/wait.h> |
|---|
| 7 | | -#include <linux/kernel.h> |
|---|
| 8 | 5 | #include <linux/device.h> |
|---|
| 9 | | -#include <linux/module.h> |
|---|
| 10 | | -#include <linux/sched.h> |
|---|
| 11 | 6 | #include <linux/jiffies.h> |
|---|
| 7 | +#include <linux/kernel.h> |
|---|
| 8 | +#include <linux/kref.h> |
|---|
| 9 | +#include <linux/module.h> |
|---|
| 12 | 10 | #include <linux/of.h> |
|---|
| 13 | 11 | #include <linux/of_platform.h> |
|---|
| 14 | | -#include <linux/kref.h> |
|---|
| 15 | | -#include <linux/wait.h> |
|---|
| 16 | | -#include <linux/soc/qcom/apr.h> |
|---|
| 17 | 12 | #include <linux/platform_device.h> |
|---|
| 13 | +#include <linux/sched.h> |
|---|
| 14 | +#include <linux/slab.h> |
|---|
| 15 | +#include <linux/soc/qcom/apr.h> |
|---|
| 16 | +#include <linux/wait.h> |
|---|
| 18 | 17 | #include <sound/asound.h> |
|---|
| 19 | 18 | #include "q6adm.h" |
|---|
| 20 | 19 | #include "q6afe.h" |
|---|
| 21 | 20 | #include "q6core.h" |
|---|
| 22 | | -#include "q6dsp-errno.h" |
|---|
| 23 | 21 | #include "q6dsp-common.h" |
|---|
| 22 | +#include "q6dsp-errno.h" |
|---|
| 24 | 23 | |
|---|
| 25 | 24 | #define ADM_CMD_DEVICE_OPEN_V5 0x00010326 |
|---|
| 26 | 25 | #define ADM_CMDRSP_DEVICE_OPEN_V5 0x00010329 |
|---|
| .. | .. |
|---|
| 218 | 217 | idx = find_first_zero_bit(&adm->copp_bitmap[port_idx], |
|---|
| 219 | 218 | MAX_COPPS_PER_PORT); |
|---|
| 220 | 219 | |
|---|
| 221 | | - if (idx > MAX_COPPS_PER_PORT) |
|---|
| 220 | + if (idx >= MAX_COPPS_PER_PORT) |
|---|
| 222 | 221 | return ERR_PTR(-EBUSY); |
|---|
| 223 | 222 | |
|---|
| 224 | 223 | c = kzalloc(sizeof(*c), GFP_ATOMIC); |
|---|
| .. | .. |
|---|
| 404 | 403 | |
|---|
| 405 | 404 | spin_lock_irqsave(&adm->copps_list_lock, flags); |
|---|
| 406 | 405 | copp = q6adm_alloc_copp(adm, port_id); |
|---|
| 407 | | - if (IS_ERR_OR_NULL(copp)) { |
|---|
| 406 | + if (IS_ERR(copp)) { |
|---|
| 408 | 407 | spin_unlock_irqrestore(&adm->copps_list_lock, flags); |
|---|
| 409 | 408 | return ERR_CAST(copp); |
|---|
| 410 | 409 | } |
|---|
| .. | .. |
|---|
| 419 | 418 | copp->channels = channel_mode; |
|---|
| 420 | 419 | copp->bit_width = bit_width; |
|---|
| 421 | 420 | copp->app_type = app_type; |
|---|
| 422 | | - |
|---|
| 423 | 421 | |
|---|
| 424 | 422 | ret = q6adm_device_open(adm, copp, port_id, path, topology, |
|---|
| 425 | 423 | channel_mode, bit_width, rate); |
|---|
| .. | .. |
|---|
| 589 | 587 | struct device *dev = &adev->dev; |
|---|
| 590 | 588 | struct q6adm *adm; |
|---|
| 591 | 589 | |
|---|
| 592 | | - adm = devm_kzalloc(&adev->dev, sizeof(*adm), GFP_KERNEL); |
|---|
| 590 | + adm = devm_kzalloc(dev, sizeof(*adm), GFP_KERNEL); |
|---|
| 593 | 591 | if (!adm) |
|---|
| 594 | 592 | return -ENOMEM; |
|---|
| 595 | 593 | |
|---|
| 596 | 594 | adm->apr = adev; |
|---|
| 597 | | - dev_set_drvdata(&adev->dev, adm); |
|---|
| 595 | + dev_set_drvdata(dev, adm); |
|---|
| 598 | 596 | adm->dev = dev; |
|---|
| 599 | 597 | q6core_get_svc_api_info(adev->svc_id, &adm->ainfo); |
|---|
| 600 | 598 | mutex_init(&adm->lock); |
|---|
| .. | .. |
|---|
| 613 | 611 | return 0; |
|---|
| 614 | 612 | } |
|---|
| 615 | 613 | |
|---|
| 614 | +#ifdef CONFIG_OF |
|---|
| 616 | 615 | static const struct of_device_id q6adm_device_id[] = { |
|---|
| 617 | 616 | { .compatible = "qcom,q6adm" }, |
|---|
| 618 | 617 | {}, |
|---|
| 619 | 618 | }; |
|---|
| 620 | 619 | MODULE_DEVICE_TABLE(of, q6adm_device_id); |
|---|
| 620 | +#endif |
|---|
| 621 | 621 | |
|---|
| 622 | 622 | static struct apr_driver qcom_q6adm_driver = { |
|---|
| 623 | 623 | .probe = q6adm_probe, |
|---|