<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/gpu, branch v4.19-rc3</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>drm/i915/dp_mst: Fix enabling pipe clock for all streams</title>
<updated>2018-09-04T04:34:36+00:00</updated>
<author>
<name>Imre Deak</name>
<email>imre.deak@intel.com</email>
</author>
<published>2018-08-31T17:47:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=2b82435cb90bed2c5f8398730d964dd11602217c'/>
<id>2b82435cb90bed2c5f8398730d964dd11602217c</id>
<content type='text'>
commit afb2c4437dae ("drm/i915/ddi: Push pipe clock enabling to encoders")
inadvertently stopped enabling the pipe clock for any DP-MST stream
after the first one. It also rearranged the pipe clock enabling wrt.
initial MST payload allocation step (which may or may not be a
problem, but it's contrary to the spec.).

Fix things by making the above commit truly a non-functional change.

Fixes: afb2c4437dae ("drm/i915/ddi: Push pipe clock enabling to encoders")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107365
Reported-by: Lyude Paul &lt;lyude@redhat.com&gt;
Reported-by: dmummenschanz@web.de
Tested-by: dmummenschanz@web.de
Tested-by: Lyude Paul &lt;lyude@redhat.com&gt;
Cc: Lyude Paul &lt;lyude@redhat.com&gt;
Cc: dmummenschanz@web.de
Cc: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Cc: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;
Cc: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Signed-off-by: Imre Deak &lt;imre.deak@intel.com&gt;
Reviewed-by: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Reviewed-by: Lyude Paul &lt;lyude@redhat.com&gt;
Reviewed-by: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180831174739.30387-1-imre.deak@intel.com
(cherry picked from commit 2b5cf4ef541f1b2facaca58cae5e8e0b5f19ad4c)
Signed-off-by: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit afb2c4437dae ("drm/i915/ddi: Push pipe clock enabling to encoders")
inadvertently stopped enabling the pipe clock for any DP-MST stream
after the first one. It also rearranged the pipe clock enabling wrt.
initial MST payload allocation step (which may or may not be a
problem, but it's contrary to the spec.).

Fix things by making the above commit truly a non-functional change.

Fixes: afb2c4437dae ("drm/i915/ddi: Push pipe clock enabling to encoders")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107365
Reported-by: Lyude Paul &lt;lyude@redhat.com&gt;
Reported-by: dmummenschanz@web.de
Tested-by: dmummenschanz@web.de
Tested-by: Lyude Paul &lt;lyude@redhat.com&gt;
Cc: Lyude Paul &lt;lyude@redhat.com&gt;
Cc: dmummenschanz@web.de
Cc: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Cc: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;
Cc: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Signed-off-by: Imre Deak &lt;imre.deak@intel.com&gt;
Reviewed-by: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Reviewed-by: Lyude Paul &lt;lyude@redhat.com&gt;
Reviewed-by: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180831174739.30387-1-imre.deak@intel.com
(cherry picked from commit 2b5cf4ef541f1b2facaca58cae5e8e0b5f19ad4c)
Signed-off-by: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/i915/dsc: Fix PPS register definition macros for 2nd VDSC engine</title>
<updated>2018-09-04T04:31:36+00:00</updated>
<author>
<name>Manasi Navare</name>
<email>manasi.d.navare@intel.com</email>
</author>
<published>2018-08-24T01:48:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=4fe967912ee83048beb45a6b4f0f6774fddcfa0a'/>
<id>4fe967912ee83048beb45a6b4f0f6774fddcfa0a</id>
<content type='text'>
This patch fixes the PPS4 and PPS5 register definition macros that were
resulting into an incorect MMIO address.

Fixes: 2efbb2f099fb ("i915/dp/dsc: Add DSC PPS register definitions")
Cc: Anusha Srivatsa &lt;anusha.srivatsa@intel.com&gt;
Signed-off-by: Manasi Navare &lt;manasi.d.navare@intel.com&gt;
Reviewed-by: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;
Reviewed-by: Anusha Srivatsa &lt;anusha.srivatsa@intel.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180824014807.14681-1-manasi.d.navare@intel.com
(cherry picked from commit 5df52391ddbed869c7d67b00fbb013bd64334115)
Signed-off-by: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes the PPS4 and PPS5 register definition macros that were
resulting into an incorect MMIO address.

Fixes: 2efbb2f099fb ("i915/dp/dsc: Add DSC PPS register definitions")
Cc: Anusha Srivatsa &lt;anusha.srivatsa@intel.com&gt;
Signed-off-by: Manasi Navare &lt;manasi.d.navare@intel.com&gt;
Reviewed-by: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;
Reviewed-by: Anusha Srivatsa &lt;anusha.srivatsa@intel.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180824014807.14681-1-manasi.d.navare@intel.com
(cherry picked from commit 5df52391ddbed869c7d67b00fbb013bd64334115)
Signed-off-by: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/i915: Re-apply "Perform link quality check, unconditionally during long pulse"</title>
<updated>2018-09-04T04:31:28+00:00</updated>
<author>
<name>Jan-Marek Glogowski</name>
<email>glogow@fbihome.de</email>
</author>
<published>2018-08-25T19:10:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=399334708b4f07b107094e5db4a390f0f25d2d4f'/>
<id>399334708b4f07b107094e5db4a390f0f25d2d4f</id>
<content type='text'>
This re-applies the workaround for "some DP sinks, [which] are a
little nuts" from commit 1a36147bb939 ("drm/i915: Perform link
quality check unconditionally during long pulse").
It makes the secondary AOC E2460P monitor connected via DP to an
acer Veriton N4640G usable again.

This hunk was dropped in commit c85d200e8321 ("drm/i915: Move SST
DP link retraining into the -&gt;post_hotplug() hook")

Fixes: c85d200e8321 ("drm/i915: Move SST DP link retraining into the -&gt;post_hotplug() hook")
[Cleaned up commit message, added stable cc]
Signed-off-by: Lyude Paul &lt;lyude@redhat.com&gt;
Signed-off-by: Jan-Marek Glogowski &lt;glogow@fbihome.de&gt;
Cc: stable@vger.kernel.org
Link: https://patchwork.freedesktop.org/patch/msgid/20180825191035.3945-1-lyude@redhat.com
(cherry picked from commit 3cf71bc9904d7ee4a25a822c5dcb54c7804ea388)
Signed-off-by: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This re-applies the workaround for "some DP sinks, [which] are a
little nuts" from commit 1a36147bb939 ("drm/i915: Perform link
quality check unconditionally during long pulse").
It makes the secondary AOC E2460P monitor connected via DP to an
acer Veriton N4640G usable again.

This hunk was dropped in commit c85d200e8321 ("drm/i915: Move SST
DP link retraining into the -&gt;post_hotplug() hook")

Fixes: c85d200e8321 ("drm/i915: Move SST DP link retraining into the -&gt;post_hotplug() hook")
[Cleaned up commit message, added stable cc]
Signed-off-by: Lyude Paul &lt;lyude@redhat.com&gt;
Signed-off-by: Jan-Marek Glogowski &lt;glogow@fbihome.de&gt;
Cc: stable@vger.kernel.org
Link: https://patchwork.freedesktop.org/patch/msgid/20180825191035.3945-1-lyude@redhat.com
(cherry picked from commit 3cf71bc9904d7ee4a25a822c5dcb54c7804ea388)
Signed-off-by: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'gvt-fixes-2018-09-04' of https://github.com/intel/gvt-linux into drm-intel-fixes</title>
<updated>2018-09-04T04:30:56+00:00</updated>
<author>
<name>Rodrigo Vivi</name>
<email>rodrigo.vivi@intel.com</email>
</author>
<published>2018-09-04T04:30:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f518cd94ecdce3298c9bace261475b6342a0111d'/>
<id>f518cd94ecdce3298c9bace261475b6342a0111d</id>
<content type='text'>
gvt-fixes-2018-09-04

- two BXT virtual display emulation fixes (Colin)
- gen9 dbuf guest warning fix (Xiaolin)
- vgpu close pm warning fix (Hang)
- dmabuf format_mod fix (Zhenyu)
- multiple VM guest failure fix for scheduling (Zhenyu)

Signed-off-by: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;
From: Zhenyu Wang &lt;zhenyuw@linux.intel.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180904025437.GE20737@zhen-hp.sh.intel.com
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
gvt-fixes-2018-09-04

- two BXT virtual display emulation fixes (Colin)
- gen9 dbuf guest warning fix (Xiaolin)
- vgpu close pm warning fix (Hang)
- dmabuf format_mod fix (Zhenyu)
- multiple VM guest failure fix for scheduling (Zhenyu)

Signed-off-by: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;
From: Zhenyu Wang &lt;zhenyuw@linux.intel.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180904025437.GE20737@zhen-hp.sh.intel.com
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/i915/gvt: Give new born vGPU higher scheduling chance</title>
<updated>2018-09-03T06:28:23+00:00</updated>
<author>
<name>Zhenyu Wang</name>
<email>zhenyuw@linux.intel.com</email>
</author>
<published>2018-08-30T03:33:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=54ff01fd0d44b9681615f77c15fe9ea6dfadb501'/>
<id>54ff01fd0d44b9681615f77c15fe9ea6dfadb501</id>
<content type='text'>
This trys to give new born vGPU with higher scheduling chance
not only with adding to sched list head and also have higher
priority for workload sched for 2 seconds after starting to
schedule it. In order for fast GPU execution during VM boot,
and ensure guest driver setup with required state given in time.

This fixes recent failure seen on one VM with multiple linux VMs
running on kernel with commit 2621cefaa42b3("drm/i915: Provide a timeout to i915_gem_wait_for_idle() on setup"),
which had shorter setup timeout that caused context state init failed.

v2: change to 2s for higher scheduling period

Cc: Yuan Hang &lt;hang.yuan@intel.com&gt;
Reviewed-by: Hang Yuan &lt;hang.yuan@intel.com&gt;
Signed-off-by: Zhenyu Wang &lt;zhenyuw@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This trys to give new born vGPU with higher scheduling chance
not only with adding to sched list head and also have higher
priority for workload sched for 2 seconds after starting to
schedule it. In order for fast GPU execution during VM boot,
and ensure guest driver setup with required state given in time.

This fixes recent failure seen on one VM with multiple linux VMs
running on kernel with commit 2621cefaa42b3("drm/i915: Provide a timeout to i915_gem_wait_for_idle() on setup"),
which had shorter setup timeout that caused context state init failed.

v2: change to 2s for higher scheduling period

Cc: Yuan Hang &lt;hang.yuan@intel.com&gt;
Reviewed-by: Hang Yuan &lt;hang.yuan@intel.com&gt;
Signed-off-by: Zhenyu Wang &lt;zhenyuw@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/i915/gvt: Fix drm_format_mod value for vGPU plane</title>
<updated>2018-08-30T04:56:33+00:00</updated>
<author>
<name>Zhenyu Wang</name>
<email>zhenyuw@linux.intel.com</email>
</author>
<published>2018-08-30T02:50:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b244ffa15c8b1aabdc117c0b6008086df7b668b7'/>
<id>b244ffa15c8b1aabdc117c0b6008086df7b668b7</id>
<content type='text'>
Physical plane's tiling mode value is given directly as
drm_format_mod for plane query, which is not correct fourcc
code. Fix it by using correct intel tiling fourcc mod definition.

Current qemu seems also doesn't correctly utilize drm_format_mod
for plane object setting. Anyway this is required to fix the usage.

v3: use DRM_FORMAT_MOD_LINEAR, fix comment

v2: Fix missed old 'tiled' use for stride calculation

Fixes: e546e281d33d ("drm/i915/gvt: Dmabuf support for GVT-g")
Cc: Tina Zhang &lt;tina.zhang@intel.com&gt;
Cc: Gerd Hoffmann &lt;kraxel@redhat.com&gt;
Cc: Colin Xu &lt;Colin.Xu@intel.com&gt;
Reviewed-by: Colin Xu &lt;Colin.Xu@intel.com&gt;
Signed-off-by: Zhenyu Wang &lt;zhenyuw@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Physical plane's tiling mode value is given directly as
drm_format_mod for plane query, which is not correct fourcc
code. Fix it by using correct intel tiling fourcc mod definition.

Current qemu seems also doesn't correctly utilize drm_format_mod
for plane object setting. Anyway this is required to fix the usage.

v3: use DRM_FORMAT_MOD_LINEAR, fix comment

v2: Fix missed old 'tiled' use for stride calculation

Fixes: e546e281d33d ("drm/i915/gvt: Dmabuf support for GVT-g")
Cc: Tina Zhang &lt;tina.zhang@intel.com&gt;
Cc: Gerd Hoffmann &lt;kraxel@redhat.com&gt;
Cc: Colin Xu &lt;Colin.Xu@intel.com&gt;
Reviewed-by: Colin Xu &lt;Colin.Xu@intel.com&gt;
Signed-off-by: Zhenyu Wang &lt;zhenyuw@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/i915/gvt: move intel_runtime_pm_get out of spin_lock in stop_schedule</title>
<updated>2018-08-30T04:54:32+00:00</updated>
<author>
<name>Hang Yuan</name>
<email>hang.yuan@linux.intel.com</email>
</author>
<published>2018-08-29T09:15:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b2b599fb54f90ae395ddc51f0d49e4f28244a8f8'/>
<id>b2b599fb54f90ae395ddc51f0d49e4f28244a8f8</id>
<content type='text'>
pm_runtime_get_sync in intel_runtime_pm_get might sleep if i915
device is not active. When stop vgpu schedule, the device may be
inactive. So need to move runtime_pm_get out of spin_lock/unlock.

Fixes: b24881e0b0b6("drm/i915/gvt: Add runtime_pm_get/put into gvt_switch_mmio
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Hang Yuan &lt;hang.yuan@linux.intel.com&gt;
Signed-off-by: Xiong Zhang &lt;xiong.y.zhang@intel.com&gt;
Signed-off-by: Zhenyu Wang &lt;zhenyuw@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
pm_runtime_get_sync in intel_runtime_pm_get might sleep if i915
device is not active. When stop vgpu schedule, the device may be
inactive. So need to move runtime_pm_get out of spin_lock/unlock.

Fixes: b24881e0b0b6("drm/i915/gvt: Add runtime_pm_get/put into gvt_switch_mmio
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Hang Yuan &lt;hang.yuan@linux.intel.com&gt;
Signed-off-by: Xiong Zhang &lt;xiong.y.zhang@intel.com&gt;
Signed-off-by: Zhenyu Wang &lt;zhenyuw@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/i915/gvt: Handle GEN9_WM_CHICKEN3 with F_CMD_ACCESS.</title>
<updated>2018-08-30T04:54:09+00:00</updated>
<author>
<name>Colin Xu</name>
<email>colin.xu@intel.com</email>
</author>
<published>2018-08-17T08:42:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b9b824a55876275f8506c1c187558ab22d879f73'/>
<id>b9b824a55876275f8506c1c187558ab22d879f73</id>
<content type='text'>
Recent patch introduce strict check on scanning cmd:
Commit 8d458ea0ec33 ("drm/i915/gvt: return error on cmd access")

Before 8d458ea0ec33, if cmd_reg_handler() checks that a cmd access a mmio
that not marked as F_CMD_ACCESS, it simply returns 0 and log an error.
Now it will return -EBADRQC which will cause the workload fail to submit.

On BXT, i915 applies WaClearHIZ_WM_CHICKEN3 which will program
GEN9_WM_CHICKEN3 by LRI when init wa ctx. If it has no F_CMD_ACCESS flag,
vgpu will fail to start. Also add F_MODE_MASK since it's mode mask reg.

v2: Refresh commit message to elaborate issue symptom in detail.
v3: Make SKL_PLUS share same handling since GEN9_WM_CHICKEN3 should be
    F_CMD_ACCESS from HW aspect. (yan, zhenyu)

Signed-off-by: Colin Xu &lt;colin.xu@intel.com&gt;
Acked-by: Zhao Yan &lt;yan.y.zhao@intel.com&gt;
Signed-off-by: Zhenyu Wang &lt;zhenyuw@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Recent patch introduce strict check on scanning cmd:
Commit 8d458ea0ec33 ("drm/i915/gvt: return error on cmd access")

Before 8d458ea0ec33, if cmd_reg_handler() checks that a cmd access a mmio
that not marked as F_CMD_ACCESS, it simply returns 0 and log an error.
Now it will return -EBADRQC which will cause the workload fail to submit.

On BXT, i915 applies WaClearHIZ_WM_CHICKEN3 which will program
GEN9_WM_CHICKEN3 by LRI when init wa ctx. If it has no F_CMD_ACCESS flag,
vgpu will fail to start. Also add F_MODE_MASK since it's mode mask reg.

v2: Refresh commit message to elaborate issue symptom in detail.
v3: Make SKL_PLUS share same handling since GEN9_WM_CHICKEN3 should be
    F_CMD_ACCESS from HW aspect. (yan, zhenyu)

Signed-off-by: Colin Xu &lt;colin.xu@intel.com&gt;
Acked-by: Zhao Yan &lt;yan.y.zhao@intel.com&gt;
Signed-off-by: Zhenyu Wang &lt;zhenyuw@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/i915/gvt: Make correct handling to vreg BXT_PHY_CTL_FAMILY</title>
<updated>2018-08-30T04:54:08+00:00</updated>
<author>
<name>Colin Xu</name>
<email>colin.xu@intel.com</email>
</author>
<published>2018-08-20T08:46:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=c8ab5ac30ccc20a31672ab0f8938a6271dfe4122'/>
<id>c8ab5ac30ccc20a31672ab0f8938a6271dfe4122</id>
<content type='text'>
Guest kernel will write to BXT_PHY_CTL_FAMILY to reset DDI PHY
and pull BXT_PHY_CTL to check PHY status. Previous handling will
set/reset BXT_PHY_CTL of all PHYs at same time on receiving vreg
write to some BXT_PHY_CTL_FAMILY. If some BXT_PHY_CTL is already
enabled, following reset to another BXT_PHY_CTL_FAMILY will clear
the enabled BXT_PHY_CTL, which result in guest kernel print:

-----------------------------------
[drm:intel_ddi_get_hw_state [i915]]
*ERROR* Port B enabled but PHY powered down? (PHY_CTL 00000000)
-----------------------------------

The correct handling should operate BXT_PHY_CTL_FAMILY and
BXT_PHY_CTL on the same DDI.

v2: Use correct reg define. The naming looks confusing, however
    current i915_reg.h bind DPIO_PHY0 to _PHY_CTL_FAMILY_DDI and
    bind DPIO_PHY1 to _PHY_CTL_FAMILY_EDP, pairing to
    _BXT_PHY_CTL_DDI_A and _BXT_PHY_CTL_DDI_B respectively.
v3: v2 incorrectly map _PHY_CTL_FAMILY_EDP to _BXT_PHY_CTL_DDI_A.
    BXT_PHY_CTL() looks up DDI using PORTx but not PHYx. Based on
    DPIO_PHY to DDI mapping, make correct vreg handle to BXT_PHY_CTL
    on receiving vreg write to BXT_PHY_CTL_FAMILY. (He, Min)

Current mapping according to bxt_power_wells:
dpio-common-a:
    &gt;&gt;&gt; DPIO_PHY1
    &gt;&gt;&gt; BXT_DPIO_CMN_A_POWER_DOMAINS
    &gt;&gt;&gt; POWER_DOMAIN_PORT_DDI_A_LANES
    &gt;&gt;&gt; PORT_A

dpio-common-bc:
    &gt;&gt;&gt; DPIO_PHY0
    &gt;&gt;&gt; BXT_DPIO_CMN_BC_POWER_DOMAINS
    &gt;&gt;&gt; POWER_DOMAIN_PORT_DDI_B_LANES | POWER_DOMAIN_PORT_DDI_C_LANES
    &gt;&gt;&gt; PORT_B or PORT_C

Signed-off-by: Colin Xu &lt;colin.xu@intel.com&gt;
Reviewed-by: He, Min &lt;min.he@intel.com&gt;
Signed-off-by: Zhenyu Wang &lt;zhenyuw@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Guest kernel will write to BXT_PHY_CTL_FAMILY to reset DDI PHY
and pull BXT_PHY_CTL to check PHY status. Previous handling will
set/reset BXT_PHY_CTL of all PHYs at same time on receiving vreg
write to some BXT_PHY_CTL_FAMILY. If some BXT_PHY_CTL is already
enabled, following reset to another BXT_PHY_CTL_FAMILY will clear
the enabled BXT_PHY_CTL, which result in guest kernel print:

-----------------------------------
[drm:intel_ddi_get_hw_state [i915]]
*ERROR* Port B enabled but PHY powered down? (PHY_CTL 00000000)
-----------------------------------

The correct handling should operate BXT_PHY_CTL_FAMILY and
BXT_PHY_CTL on the same DDI.

v2: Use correct reg define. The naming looks confusing, however
    current i915_reg.h bind DPIO_PHY0 to _PHY_CTL_FAMILY_DDI and
    bind DPIO_PHY1 to _PHY_CTL_FAMILY_EDP, pairing to
    _BXT_PHY_CTL_DDI_A and _BXT_PHY_CTL_DDI_B respectively.
v3: v2 incorrectly map _PHY_CTL_FAMILY_EDP to _BXT_PHY_CTL_DDI_A.
    BXT_PHY_CTL() looks up DDI using PORTx but not PHYx. Based on
    DPIO_PHY to DDI mapping, make correct vreg handle to BXT_PHY_CTL
    on receiving vreg write to BXT_PHY_CTL_FAMILY. (He, Min)

Current mapping according to bxt_power_wells:
dpio-common-a:
    &gt;&gt;&gt; DPIO_PHY1
    &gt;&gt;&gt; BXT_DPIO_CMN_A_POWER_DOMAINS
    &gt;&gt;&gt; POWER_DOMAIN_PORT_DDI_A_LANES
    &gt;&gt;&gt; PORT_A

dpio-common-bc:
    &gt;&gt;&gt; DPIO_PHY0
    &gt;&gt;&gt; BXT_DPIO_CMN_BC_POWER_DOMAINS
    &gt;&gt;&gt; POWER_DOMAIN_PORT_DDI_B_LANES | POWER_DOMAIN_PORT_DDI_C_LANES
    &gt;&gt;&gt; PORT_B or PORT_C

Signed-off-by: Colin Xu &lt;colin.xu@intel.com&gt;
Reviewed-by: He, Min &lt;min.he@intel.com&gt;
Signed-off-by: Zhenyu Wang &lt;zhenyuw@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/i915/gvt: emulate gen9 dbuf ctl register access</title>
<updated>2018-08-30T04:54:08+00:00</updated>
<author>
<name>Xiaolin Zhang</name>
<email>xiaolin.zhang@intel.com</email>
</author>
<published>2018-08-07T12:39:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=9174c1d6196d612799808009ec2796df021ab625'/>
<id>9174c1d6196d612799808009ec2796df021ab625</id>
<content type='text'>
there is below call track at boot time when booting guest
with kabylake vgpu with specifal configuration and this try to fix it.

[drm:gen9_dbuf_enable [i915]] *ERROR* DBuf power enable timeout
------------[ cut here ]------------
WARNING: gen9_dc_off_power_well_enable+0x224/0x230 [i915]
Unexpected DBuf power power state (0x8000000a)
Hardware name: Red Hat KVM, BIOS 1.11.0-2.el7 04/01/2014
Call Trace:
 [&lt;ffffffff99d24408&gt;] dump_stack+0x19/0x1b
 [&lt;ffffffff996926d8&gt;] __warn+0xd8/0x100
 [&lt;ffffffff9969275f&gt;] warn_slowpath_fmt+0x5f/0x80
 [&lt;ffffffffc07bbae4&gt;] gen9_dc_off_power_well_enable+0x224/0x230 [i915]
 [&lt;ffffffffc07ba9d2&gt;] intel_power_well_enable+0x42/0x50 [i915]
 [&lt;ffffffffc07baa6a&gt;] __intel_display_power_get_domain+0x8a/0xb0 [i915]
 [&lt;ffffffffc07bdb93&gt;] intel_display_power_get+0x33/0x50 [i915]
 [&lt;ffffffffc07bdf95&gt;] intel_display_set_init_power+0x45/0x50 [i915]
 [&lt;ffffffffc07be003&gt;] intel_power_domains_init_hw+0x63/0x8a0 [i915]
 [&lt;ffffffffc07995c3&gt;] i915_driver_load+0xae3/0x1760 [i915]
 [&lt;ffffffff99bd6580&gt;] ? nvmem_register+0x500/0x500
 [&lt;ffffffffc07a476c&gt;] i915_pci_probe+0x2c/0x50 [i915]
 [&lt;ffffffff9999cfea&gt;] local_pci_probe+0x4a/0xb0
 [&lt;ffffffff9999e729&gt;] pci_device_probe+0x109/0x160
 [&lt;ffffffff99a79aa5&gt;] driver_probe_device+0xc5/0x3e0
 [&lt;ffffffff99a79ea3&gt;] __driver_attach+0x93/0xa0
 [&lt;ffffffff99a79e10&gt;] ? __device_attach+0x50/0x50
 [&lt;ffffffff99a77645&gt;] bus_for_each_dev+0x75/0xc0
 [&lt;ffffffff99a7941e&gt;] driver_attach+0x1e/0x20
 [&lt;ffffffff99a78ec0&gt;] bus_add_driver+0x200/0x2d0
 [&lt;ffffffff99a7a534&gt;] driver_register+0x64/0xf0
 [&lt;ffffffff9999df65&gt;] __pci_register_driver+0xa5/0xc0
 [&lt;ffffffffc0929000&gt;] ? 0xffffffffc0928fff
 [&lt;ffffffffc0929059&gt;] i915_init+0x59/0x5c [i915]
 [&lt;ffffffff9960210a&gt;] do_one_initcall+0xba/0x240
 [&lt;ffffffff9971108c&gt;] load_module+0x272c/0x2bc0
 [&lt;ffffffff9997b990&gt;] ? ddebug_proc_write+0xf0/0xf0
 [&lt;ffffffff997115e5&gt;] SyS_init_module+0xc5/0x110
 [&lt;ffffffff99d36795&gt;] system_call_fastpath+0x1c/0x21

Signed-off-by: Xiaolin Zhang &lt;xiaolin.zhang@intel.com&gt;

Signed-off-by: Zhenyu Wang &lt;zhenyuw@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
there is below call track at boot time when booting guest
with kabylake vgpu with specifal configuration and this try to fix it.

[drm:gen9_dbuf_enable [i915]] *ERROR* DBuf power enable timeout
------------[ cut here ]------------
WARNING: gen9_dc_off_power_well_enable+0x224/0x230 [i915]
Unexpected DBuf power power state (0x8000000a)
Hardware name: Red Hat KVM, BIOS 1.11.0-2.el7 04/01/2014
Call Trace:
 [&lt;ffffffff99d24408&gt;] dump_stack+0x19/0x1b
 [&lt;ffffffff996926d8&gt;] __warn+0xd8/0x100
 [&lt;ffffffff9969275f&gt;] warn_slowpath_fmt+0x5f/0x80
 [&lt;ffffffffc07bbae4&gt;] gen9_dc_off_power_well_enable+0x224/0x230 [i915]
 [&lt;ffffffffc07ba9d2&gt;] intel_power_well_enable+0x42/0x50 [i915]
 [&lt;ffffffffc07baa6a&gt;] __intel_display_power_get_domain+0x8a/0xb0 [i915]
 [&lt;ffffffffc07bdb93&gt;] intel_display_power_get+0x33/0x50 [i915]
 [&lt;ffffffffc07bdf95&gt;] intel_display_set_init_power+0x45/0x50 [i915]
 [&lt;ffffffffc07be003&gt;] intel_power_domains_init_hw+0x63/0x8a0 [i915]
 [&lt;ffffffffc07995c3&gt;] i915_driver_load+0xae3/0x1760 [i915]
 [&lt;ffffffff99bd6580&gt;] ? nvmem_register+0x500/0x500
 [&lt;ffffffffc07a476c&gt;] i915_pci_probe+0x2c/0x50 [i915]
 [&lt;ffffffff9999cfea&gt;] local_pci_probe+0x4a/0xb0
 [&lt;ffffffff9999e729&gt;] pci_device_probe+0x109/0x160
 [&lt;ffffffff99a79aa5&gt;] driver_probe_device+0xc5/0x3e0
 [&lt;ffffffff99a79ea3&gt;] __driver_attach+0x93/0xa0
 [&lt;ffffffff99a79e10&gt;] ? __device_attach+0x50/0x50
 [&lt;ffffffff99a77645&gt;] bus_for_each_dev+0x75/0xc0
 [&lt;ffffffff99a7941e&gt;] driver_attach+0x1e/0x20
 [&lt;ffffffff99a78ec0&gt;] bus_add_driver+0x200/0x2d0
 [&lt;ffffffff99a7a534&gt;] driver_register+0x64/0xf0
 [&lt;ffffffff9999df65&gt;] __pci_register_driver+0xa5/0xc0
 [&lt;ffffffffc0929000&gt;] ? 0xffffffffc0928fff
 [&lt;ffffffffc0929059&gt;] i915_init+0x59/0x5c [i915]
 [&lt;ffffffff9960210a&gt;] do_one_initcall+0xba/0x240
 [&lt;ffffffff9971108c&gt;] load_module+0x272c/0x2bc0
 [&lt;ffffffff9997b990&gt;] ? ddebug_proc_write+0xf0/0xf0
 [&lt;ffffffff997115e5&gt;] SyS_init_module+0xc5/0x110
 [&lt;ffffffff99d36795&gt;] system_call_fastpath+0x1c/0x21

Signed-off-by: Xiaolin Zhang &lt;xiaolin.zhang@intel.com&gt;

Signed-off-by: Zhenyu Wang &lt;zhenyuw@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
