update to PKT lts-v4.19.8-base-190102T053708Z

Signed-off-by: Alek Du <alek.du@intel.com>
This commit is contained in:
Alek Du 2019-01-03 12:02:48 +00:00
parent 84cb5c521b
commit c8ef7eac5c
3 changed files with 73 additions and 4 deletions

View File

@ -0,0 +1,67 @@
From 6f217408b04d5172e53b22cf0eb21e228b048eb9 Mon Sep 17 00:00:00 2001
From: Shuo Liu <shuo.a.liu@intel.com>
Date: Wed, 2 Jan 2019 09:56:50 +0800
Subject: [PATCH] vhm: fix audio backend module handle ioreq incorrectly
While we get all ioreq from vhm module, we need only handle those
belongs us. Without this patch, audio backend take all ioreqs and mark
them as completed which is not correct.
Also, REQ_STATE_COMPLETE should be marked in acrn_ioreq_complete_request,
so we needn't do that before it.
Change-Id: Ib0404f418b126e6608d80dc59fac455897d61c94
Signed-off-by: Shuo A Liu <shuo.a.liu@intel.com>
Tracked-On: PKT-1635
---
.../intel/skylake/virtio/skl-virtio-miscdev.c | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/sound/soc/intel/skylake/virtio/skl-virtio-miscdev.c b/sound/soc/intel/skylake/virtio/skl-virtio-miscdev.c
index 225b2ab4a12d..647fbc0eeb5e 100644
--- a/sound/soc/intel/skylake/virtio/skl-virtio-miscdev.c
+++ b/sound/soc/intel/skylake/virtio/skl-virtio-miscdev.c
@@ -66,7 +66,7 @@ static int handle_kick(int client_id, unsigned long *ioreqs_map)
struct snd_skl_vbe_client *client;
struct snd_skl_vbe *vbe;
struct skl *sdev = snd_skl_get_virtio_audio();
- int i, handle;
+ int vcpu, handle;
if (!sdev) {
pr_err("error: no BE registered for SOF!\n");
@@ -85,14 +85,16 @@ static int handle_kick(int client_id, unsigned long *ioreqs_map)
vbe = client->vbe;
/* go through all vcpu for the valid request buffer */
- for (i = 0; i < client->max_vcpu; i++) {
- req = &client->req_buf[i];
- handle = 0;
-
- /* ignore if not processing state */
- if (atomic_read(&req->processed) != REQ_STATE_PROCESSING)
+ while (1) {
+ vcpu = find_first_bit(ioreqs_map, client->max_vcpu);
+ if (vcpu == client->max_vcpu)
+ break;
+ req = &client->req_buf[vcpu];
+ if (atomic_read(&req->processed) != REQ_STATE_PROCESSING ||
+ req->client != client->vhm_client_id)
continue;
+ handle = 0;
dev_dbg(sdev->skl_sst->dev,
"ioreq type %d, direction %d, addr 0x%llx, size 0x%llx, value 0x%x\n",
req->type,
@@ -112,8 +114,7 @@ static int handle_kick(int client_id, unsigned long *ioreqs_map)
(handle = 1) : (handle = 0);
}
- atomic_set(&req->processed, REQ_STATE_COMPLETE);
- acrn_ioreq_complete_request(client->vhm_client_id, i, req);
+ acrn_ioreq_complete_request(client->vhm_client_id, vcpu, req);
/* handle VQ kick if needed */
if (handle)
--
2.17.1

View File

@ -17,7 +17,7 @@ Name: linux-iot-lts2018
Version: 4.19.8
# Release number is the number from PKT it consist in
# YYMMDDHHMM a 10 length number
Release: 1812281845
Release: 1901020537
License: GPL-2.0
Summary: The Linux kernel
Url: http://www.kernel.org/
@ -31,8 +31,8 @@ Source5: fragment-sos
# quilt.url: https://github.com/intel/linux-intel-quilt
# quilt.branch: 4.19/base
# quilt.tag: lts-v4.19.8-base-181228T184545Z
# config.tag: lts-v4.19.8-base-181228T184545Z
# quilt.tag: lts-v4.19.8-base-190102T053708Z
# config.tag: lts-v4.19.8-base-190102T053708Z
%define ktarget0 iot-lts2018
%define kversion0 %{version}-%{release}.%{ktarget0}
@ -891,6 +891,7 @@ Patch0839: 0839-media-intel-ipu4-ICI-Fix-putbuf-list-and-ge.patch
Patch0840: 0840-media-ipu4-add-virtio-depends-for-ipu-virti.patch
Patch0841: 0841-media-intel-ipu4-VIRT-Support-for-IPU-ACRN-.patch
Patch0842: 0842-drm-i915-gvt-fix-kernel-panic-when-fail-to-.patch
Patch0843: 0843-vhm-fix-audio-backend-module-handle-ioreq-i.patch
#END XXXX: PK Series
# Clear Linux Series
@ -1762,6 +1763,7 @@ Linux kernel extra files
%patch0840 -p1
%patch0841 -p1
%patch0842 -p1
%patch0843 -p1
# End XXXX PK Series
# Clear Linux Series

View File

@ -1 +1 @@
1812281845
1901020537