update to PKT lts-v4.19.20-base-190216T234416Z

Signed-off-by: Alek Du <alek.du@intel.com>
This commit is contained in:
Alek Du 2019-02-18 08:28:48 +00:00
parent f868e6b881
commit d21745fdd5
7 changed files with 277 additions and 5 deletions

View File

@ -0,0 +1,47 @@
From ce0eae4bad4fc6b4e4e350768701bac1ca4c6ee8 Mon Sep 17 00:00:00 2001
From: Zhao Yakui <yakui.zhao@intel.com>
Date: Wed, 30 Jan 2019 09:20:16 +0800
Subject: [PATCH 1/5] drm/i915/gvt: Refine the snapshort range of I915 MCHBAR
to optimize gvt-g boot time
Currently it will take the snapshot of the MCHBAR registers for gvt-g
initialization so that it can be used for guest vgpu. And it will cover
from 0x140000 to 0x17ffff. In fact based on the HW spec most of them are
meanlingless and some time is wasted to read these register.
Only the range of 0x144000 to 0x147fff contains the valid definition.
So the range of capturing I915 MCHBAR register is refined, which helps
to optimize the gvt-g boot time.
Tracked-On: projectacrn/acrn-hypervisor#2451
Tracked-On: PKT-1737
Acked-by: Feng Tang <feng.tang@intel.com>
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
---
drivers/gpu/drm/i915/gvt/handlers.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/gvt/handlers.c b/drivers/gpu/drm/i915/gvt/handlers.c
index f923ca71ab8e..02c12fbeafd3 100644
--- a/drivers/gpu/drm/i915/gvt/handlers.c
+++ b/drivers/gpu/drm/i915/gvt/handlers.c
@@ -47,6 +47,8 @@
#define PCH_PP_OFF_DELAYS _MMIO(0xc720c)
#define PCH_PP_DIVISOR _MMIO(0xc7210)
+#define MCHBAR_MEM_BASE _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x4000)
+
unsigned long intel_gvt_get_device_type(struct intel_gvt *gvt)
{
if (IS_BROADWELL(gvt->dev_priv))
@@ -3443,7 +3445,7 @@ void intel_gvt_clean_mmio_info(struct intel_gvt *gvt)
/* Special MMIO blocks. */
static struct gvt_mmio_block mmio_blocks[] = {
{D_SKL_PLUS, _MMIO(CSR_MMIO_START_RANGE), 0x3000, NULL, NULL},
- {D_ALL, _MMIO(MCHBAR_MIRROR_BASE_SNB), 0x40000, NULL, NULL},
+ {D_ALL, MCHBAR_MEM_BASE, 0x4000, NULL, NULL},
{D_ALL, _MMIO(VGT_PVINFO_PAGE), VGT_PVINFO_SIZE,
pvinfo_mmio_read, pvinfo_mmio_write},
{D_ALL, LGC_PALETTE(PIPE_A, 0), 1024, NULL, NULL},
--
2.17.1

View File

@ -0,0 +1,44 @@
From a7269ab0d00eb062b2f635077664f7efa0ff8ba0 Mon Sep 17 00:00:00 2001
From: Feng Tang <feng.tang@intel.com>
Date: Wed, 30 Jan 2019 13:39:58 +0800
Subject: [PATCH 2/5] drm/i915/gvt: optimize the oos memory setup
current oos memory occupy 33M memory, and its initialization
takes about 30ms for APL. Since now PVMMIO is used instead of
oos, reduce its memory size. Also change the kzalloc to kmalloc
as the oos page will be read first anyway. With this, the setup
time could be reduced to 3ms.
Tracked-On: projectacrn/acrn-hypervisor#2451
Tracked-On: PKT-1737
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
Signed-off-by: Feng Tang <feng.tang@intel.com>
---
drivers/gpu/drm/i915/gvt/gtt.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/gvt/gtt.c b/drivers/gpu/drm/i915/gvt/gtt.c
index 0119a4772783..97e762fb27ea 100644
--- a/drivers/gpu/drm/i915/gvt/gtt.c
+++ b/drivers/gpu/drm/i915/gvt/gtt.c
@@ -45,7 +45,7 @@
#endif
static bool enable_out_of_sync = true;
-static int preallocated_oos_pages = 8192;
+static int preallocated_oos_pages = 2048;
/*
* validate a gm address and related range size,
@@ -2703,7 +2703,7 @@ static int setup_spt_oos(struct intel_gvt *gvt)
INIT_LIST_HEAD(&gtt->oos_page_use_list_head);
for (i = 0; i < preallocated_oos_pages; i++) {
- oos_page = kzalloc(sizeof(*oos_page), GFP_KERNEL);
+ oos_page = kmalloc(sizeof(*oos_page), GFP_KERNEL);
if (!oos_page) {
ret = -ENOMEM;
goto fail;
--
2.17.1

View File

@ -0,0 +1,47 @@
From f2b09d0e5c7bce9caddb46718724b95a24424546 Mon Sep 17 00:00:00 2001
From: Min He <min.he@intel.com>
Date: Fri, 15 Feb 2019 03:52:45 +0000
Subject: [PATCH 3/5] drm/i915/gvt: limit the active perf on BXT platform
In commit "drm/i915/gvt: force to active the high-performance mode
during vGPU busy", it set the max GPU freq when there's GVT workload,
but on BXT platform, the max GPU freq will impact the CPU performance,
To make a balance between GPU and CPU, we hardcode it to 600Mhz on BXT
platform.
Also, this patch will not disable rps interrupt anymore, so that if
workload is heavier, GPU freq can be adjusted to higher.
Tracked-On: projectacrn/acrn-hypervisor#2537
Tracked-On: PKT-1737
Signed-off-by: Min He <min.he@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
---
drivers/gpu/drm/i915/gvt/scheduler.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c b/drivers/gpu/drm/i915/gvt/scheduler.c
index 51060ff067e8..87944a44cb51 100644
--- a/drivers/gpu/drm/i915/gvt/scheduler.c
+++ b/drivers/gpu/drm/i915/gvt/scheduler.c
@@ -270,13 +270,14 @@ static void active_hp_work(struct work_struct *work)
struct intel_gvt *gvt =
container_of(work, struct intel_gvt, active_hp_work);
struct drm_i915_private *dev_priv = gvt->dev_priv;
+ u8 freq = dev_priv->gt_pm.rps.rp0_freq;
- gen6_disable_rps_interrupts(dev_priv);
+ if (IS_BROXTON(dev_priv))
+ freq = intel_freq_opcode(dev_priv, 600);
- if (READ_ONCE(dev_priv->gt_pm.rps.cur_freq) <
- READ_ONCE(dev_priv->gt_pm.rps.rp0_freq)) {
+ if (READ_ONCE(dev_priv->gt_pm.rps.cur_freq) < freq) {
mutex_lock(&dev_priv->pcu_lock);
- intel_set_rps(dev_priv, dev_priv->gt_pm.rps.rp0_freq);
+ intel_set_rps(dev_priv, freq);
mutex_unlock(&dev_priv->pcu_lock);
}
}
--
2.17.1

View File

@ -0,0 +1,38 @@
From 65d743d543908e2b0b6f0227fa6a5aaf279d9177 Mon Sep 17 00:00:00 2001
From: "Gopal, Puunithaaraj" <puunithaaraj.gopal@intel.com>
Date: Wed, 30 Jan 2019 23:44:12 +0800
Subject: [PATCH 4/5] media: intel-ipu4: [VIRT] Increase MAX_ISYS_VIRT_STREAM
to 35
In UOS, the max number of IPU stream device that been exposed is 34
and SOS created 35 stream devices. By incresing MAX_ISYS_VIRT_STREAM
to 35, UOS expose all the stream devices that been created by SOS.
This enables UOS to do 8 camera concurrent streaming whereas
previously UOS only able to do 7 camera concurrent streaming.
Change-Id: I99cde4a26612a267730451a1503c41c8ddd1fdab
Tracked-On: PKT-1732
Tracked-On: OAM-63788
Tracked-On: OAM-63914
Signed-off-by: Gopal, Puunithaaraj <puunithaaraj.gopal@intel.com>
---
drivers/media/pci/intel/virtio/intel-ipu4-virtio-common.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/media/pci/intel/virtio/intel-ipu4-virtio-common.h b/drivers/media/pci/intel/virtio/intel-ipu4-virtio-common.h
index 3edab4270da0..b5cc8dd16b92 100644
--- a/drivers/media/pci/intel/virtio/intel-ipu4-virtio-common.h
+++ b/drivers/media/pci/intel/virtio/intel-ipu4-virtio-common.h
@@ -18,7 +18,7 @@
#define MAX_ENTRY_FE 7
#define MAX_STREAM_DEVICES 64
#define MAX_PIPELINE_DEVICES 1
-#define MAX_ISYS_VIRT_STREAM 34
+#define MAX_ISYS_VIRT_STREAM 35
#define phys_to_page(x) pfn_to_page((x) >> PAGE_SHIFT)
--
2.17.1

View File

@ -0,0 +1,86 @@
From 1bbc720655a027c33d3fe9b299383b5a359a139c Mon Sep 17 00:00:00 2001
From: kgopala2 <karthik.l.gopalakrishnan@intel.com>
Date: Wed, 30 Jan 2019 01:41:06 +0800
Subject: [PATCH 5/5] media: i2c: ici: fix for NULL pointer deref in max9286
driver
During enumeration MAXIM9286 bridge and sensors, the function
init_ext_sd was leading in to a NULL pointer derefernce which got
introduced due to final code cleanup for PKT merge. This change
fixes the NULL pointer dereference.
Change-Id: Id8521eb90af335a18be88ff813f91c74a93bfe5d
Tracked-On: PKT-1732
Tracked-On: OLINUX-3050
Tracked-On: OAM-65034
Signed-off-by: kgopala2 <karthik.l.gopalakrishnan@intel.com>
---
drivers/media/i2c/ici/max9286_ici.c | 23 +++++++++++++----------
1 file changed, 13 insertions(+), 10 deletions(-)
diff --git a/drivers/media/i2c/ici/max9286_ici.c b/drivers/media/i2c/ici/max9286_ici.c
index 3400cc11946f..4345c705b081 100644
--- a/drivers/media/i2c/ici/max9286_ici.c
+++ b/drivers/media/i2c/ici/max9286_ici.c
@@ -486,17 +486,20 @@ static int max9286_get_selection(struct ici_isys_node *node, struct ici_pad_sele
static int init_ext_sd(struct i2c_client *client, struct max9286_subdev *max_sd, int idx)
{
- struct max9286 *max;
+ struct max9286 *maxim;
int rval;
char name[ICI_MAX_NODE_NAME];
struct ici_ext_subdev *subdev;
- max = to_max_9286(subdev);
subdev = i2c_get_clientdata(client);
+ if (!subdev) {
+ return -EINVAL;
+ }
+ maxim = to_max_9286(subdev);
snprintf(name, sizeof(name), "MAX9286 %d", idx);
- strncpy(max->sub_devs[idx].sd_name, name, sizeof(name));
+ strncpy(maxim->sub_devs[idx].sd_name, name, sizeof(name));
max_sd->sd->client = client;
max_sd->sd->num_pads = 2;
@@ -510,11 +513,11 @@ static int init_ext_sd(struct i2c_client *client, struct max9286_subdev *max_sd,
max_sd->sd->set_param = max9286_set_param; // meant to execute CTRL-IDs/CIDs
max_sd->sd->get_param = max9286_get_param; // meant to execute CTRLIDs/CIDs
max_sd->sd->get_menu_item = max9286_get_menu_item; // get LINK FREQ
- if (max->reg.setup_node) {
- rval = max->reg.setup_node(max->reg.ipu_data,
- max_sd->sd, name);
- if (rval)
- return rval;
+ if (maxim->reg.setup_node) {
+ rval = maxim->reg.setup_node(maxim->reg.ipu_data,
+ max_sd->sd, name);
+ if (rval)
+ return rval;
} else {
pr_err("node not registered\n");
}
@@ -653,7 +656,7 @@ static int max9286_registered(struct ici_ext_subdev_register *reg)
sd = &max->sub_devs[k];
rval = init_ext_sd(max->ici_sd.client, sd, k);
if (rval)
- return rval;
+ return rval;
rval = sd_register.create_link(&sensor_sd->node,
sensor_sd->src_pad,
@@ -987,7 +990,7 @@ static int max9286_probe(struct i2c_client *client,
if (client->dev.platform_data == NULL)
return -ENODEV;
- dev_err(&client->dev, "MAX9286 probe!\n");
+ dev_info(&client->dev, "MAX9286 probe!\n");
max = devm_kzalloc(&client->dev, sizeof(*max), GFP_KERNEL);
if (!max)
return -ENOMEM;
--
2.17.1

View File

@ -17,8 +17,8 @@ Name: linux-iot-lts2018
Version: 4.19.20 Version: 4.19.20
# upstream number is the number from PKT it consist in # upstream number is the number from PKT it consist in
# YYMMDDHHMM a 10 length number # YYMMDDHHMM a 10 length number
%global upstreamnumber 1902140909 %global upstreamnumber 1902162344
Release: 15 Release: 16
License: GPL-2.0 License: GPL-2.0
Summary: The Linux kernel Summary: The Linux kernel
Url: http://www.kernel.org/ Url: http://www.kernel.org/
@ -32,8 +32,8 @@ Source5: fragment-sos
# quilt.url: https://github.com/intel/linux-intel-quilt # quilt.url: https://github.com/intel/linux-intel-quilt
# quilt.branch: 4.19/base # quilt.branch: 4.19/base
# quilt.tag: lts-v4.19.20-base-190214T090914Z # quilt.tag: lts-v4.19.20-base-190216T234416Z
# config.tag: lts-v4.19.20-base-190214T090914Z # config.tag: lts-v4.19.20-base-190216T234416Z
%define ktarget0 iot-lts2018 %define ktarget0 iot-lts2018
%define kversion0 %{version}-%{release}.%{ktarget0} %define kversion0 %{version}-%{release}.%{ktarget0}
@ -1046,6 +1046,11 @@ Patch0993: 0993-iommu-vt-d-Added-option-to-disable-BXT-IPU.patch
Patch0994: 0994-af_key-unconditionally-clone-on-broadcast.patch Patch0994: 0994-af_key-unconditionally-clone-on-broadcast.patch
Patch0995: 0995-mfd-intel-lpss-Set-the-device-in-reset-stat.patch Patch0995: 0995-mfd-intel-lpss-Set-the-device-in-reset-stat.patch
Patch0996: 0996-BXT-Workaround-for-HW-bug-data-loss-in-16-1.patch Patch0996: 0996-BXT-Workaround-for-HW-bug-data-loss-in-16-1.patch
Patch0997: 0997-drm-i915-gvt-Refine-the-snapshort-range-of-.patch
Patch0998: 0998-drm-i915-gvt-optimize-the-oos-memory-setup.patch
Patch0999: 0999-drm-i915-gvt-limit-the-active-perf-on-BXT-p.patch
Patch1000: 1000-media-intel-ipu4-VIRT-Increase-MAX_ISYS_VIR.patch
Patch1001: 1001-media-i2c-ici-fix-for-NULL-pointer-deref-in.patch
#END XXXX: PK Series #END XXXX: PK Series
# Clear Linux Series # Clear Linux Series
@ -2097,6 +2102,11 @@ Linux kernel build files and install script
%patch0994 -p1 %patch0994 -p1
%patch0995 -p1 %patch0995 -p1
%patch0996 -p1 %patch0996 -p1
%patch0997 -p1
%patch0998 -p1
%patch0999 -p1
%patch1000 -p1
%patch1001 -p1
# End XXXX PK Series # End XXXX PK Series
# Clear Linux Series # Clear Linux Series

View File

@ -1 +1 @@
15 16