Re: [PATCH] qcom: apr: Make apr callbacks in non-atomic context

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


On Thu 15 Nov 10:49 PST 2018, Srinivas Kandagatla wrote:

> APR communication with DSP is not atomic in nature.
> Its request-response type. Trying to pretend that these are atomic
> and invoking apr client callbacks directly under atomic/irq context has
> endless issues with soundcard. It makes more sense to convert these
> to nonatomic calls. This also coverts all the dais to be nonatomic.

Hi Srinivas,

Sorry for not looking at this before.

Are you sure that you're meeting the latency requirements of low-latency
audio with this change?

> @@ -303,6 +363,10 @@ static int apr_remove_device(struct device *dev, void *null)
>  static void apr_remove(struct rpmsg_device *rpdev)
>  {
> +	struct apr *apr = dev_get_drvdata(&rpdev->dev);
> +
> +	flush_workqueue(apr->rxwq);
> +	destroy_workqueue(apr->rxwq);

The devices may still be communicating until you remove them on the next
line, wouldn't it make more sense to destroy the work queue after
removing the APR devices?

>  	device_for_each_child(&rpdev->dev, NULL, apr_remove_device);
>  }


[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux