Re: [Intel-gfx] [PATCH] drm/i915: Prevent bonded requests from overtaking each other on preemption

2019-09-20 Thread Tvrtko Ursulin
On 20/09/2019 09:36, Chris Wilson wrote: Force bonded requests to run on distinct engines so that they cannot be shuffled onto the same engine where timeslicing will reverse the order. A bonded request will often wait on a semaphore signaled by its master, creating an implicit dependency -- if

Re: [Intel-gfx] [PATCH] drm/i915: Mark contents as dirty on a write fault

2019-09-20 Thread Chris Wilson
Quoting Chris Wilson (2019-09-20 13:18:21) > Since dropping the set-to-gtt-domain in commit a679f58d0510 ("drm/i915: > Flush pages on acquisition"), we no longer mark the contents as dirty on > a write fault. This has the issue of us then not marking the pages as > dirty on releasing the buffer,

Re: [Intel-gfx] [PATCH 12/12] drm/i915: Add PIPECONF YCbCr 4:4:4 programming for ILK-IVB

2019-09-20 Thread Mun, Gwan-gyeong
Except typo, the changes look good to me. Reviewed-by: Gwan-gyeong Mun On Wed, 2019-09-18 at 19:05 +, Mun, Gwan-gyeong wrote: > On Thu, 2019-07-18 at 17:50 +0300, Ville Syrjala wrote: > > From: Ville Syrjälä > > > > On ILK-IVB the pipe colorspace is configured via PIPECONF > > (as opposed

Re: [Intel-gfx] [PATCH 09/12] drm/i915: Add PIPECONF YCbCr 4:4:4 programming for HSW

2019-09-20 Thread Mun, Gwan-gyeong
Except typo, the changes look good to me. Reviewed-by: Gwan-gyeong Mun On Wed, 2019-09-18 at 19:03 +, Mun, Gwan-gyeong wrote: > On Thu, 2019-07-18 at 17:50 +0300, Ville Syrjala wrote: > > From: Ville Syrjälä > > > > On HSW the pipe colorspace is configured via PIPECONF > > (as opposed to

Re: [Intel-gfx] [PATCH 11/12] drm/i915: Set up ILK/SNB csc unit properly for YCbCr output

2019-09-20 Thread Mun, Gwan-gyeong
On Thu, 2019-07-18 at 17:50 +0300, Ville Syrjala wrote: > From: Ville Syrjälä > > Prepare the pipe csc for YCbCr output on ilk/snb. The main difference > to IVB+ is the lack of explicit post offsets, and instead we must > configure the CSC info RGB->YUV mode (which takes care of offsetting >

[Intel-gfx] [PATCH] drm/i915: Mark contents as dirty on a write fault

2019-09-20 Thread Chris Wilson
Since dropping the set-to-gtt-domain in commit a679f58d0510 ("drm/i915: Flush pages on acquisition"), we no longer mark the contents as dirty on a write fault. This has the issue of us then not marking the pages as dirty on releasing the buffer, which means the contents are not written out to the

Re: [Intel-gfx] [PATCH v9 04/10] drm/i915/dsb: Indexed register write function for DSB.

2019-09-20 Thread Jani Nikula
On Fri, 20 Sep 2019, Animesh Manna wrote: > DSB can program large set of data through indexed register write > (opcode 0x9) in one shot. DSB feature can be used for bulk register > programming e.g. gamma lut programming, HDR meta data programming. > > v1: initial version. > v2: simplified code by

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for mdev based hardware virtio offloading support

2019-09-20 Thread Patchwork
== Series Details == Series: mdev based hardware virtio offloading support URL : https://patchwork.freedesktop.org/series/66989/ State : warning == Summary == $ dim checkpatch origin/drm-tip 32afcef2acff mdev: class id support 8efae9b60a78 mdev: introduce device specific ops -:309:

[Intel-gfx] [PATCH v9 10/10] drm/i915/dsb: Documentation for DSB.

2019-09-20 Thread Animesh Manna
Added docbook info regarding Display State Buffer(DSB) which is added from gen12 onwards to batch submit display HW programming. v1: Initial version as RFC. Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Shashank Sharma Reviewed-by: Shashank Sharma Signed-off-by: Animesh Manna ---

[Intel-gfx] [PATCH v9 09/10] drm/i915/dsb: Enable DSB for gen12.

2019-09-20 Thread Animesh Manna
Enabling DSB by setting 1 to has_dsb flag for gen12. Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Shashank Sharma Reviewed-by: Shashank Sharma Signed-off-by: Animesh Manna --- drivers/gpu/drm/i915/i915_pci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git

[Intel-gfx] [PATCH v9 06/10] drm/i915/dsb: functions to enable/disable DSB engine.

2019-09-20 Thread Animesh Manna
DSB will be used for performance improvement for some special scenario. DSB engine will be enabled based on need and after completion of its work will be disabled. Api added for enable/disable operation by using DSB_CTRL register. v1: Initial version. v2: POSTING_READ added after writing control

[Intel-gfx] [PATCH v9 07/10] drm/i915/dsb: function to trigger workload execution of DSB.

2019-09-20 Thread Animesh Manna
Batch buffer will be created through dsb-reg-write function which can have single/multiple request based on usecase and once the buffer is ready commit function will trigger the execution of the batch buffer. All the registers will be updated simultaneously. v1: Initial version. v2: Optimized

[Intel-gfx] [PATCH v9 08/10] drm/i915/dsb: Enable gamma lut programming using DSB.

2019-09-20 Thread Animesh Manna
Gamma lut programming can be programmed using DSB where bulk register programming can be done using indexed register write which takes number of data and the mmio offset to be written. Currently enabled for 12-bit gamma LUT which is enabled by default and later 8-bit/10-bit will be enabled in

[Intel-gfx] [PATCH v9 05/10] drm/i915/dsb: Check DSB engine status.

2019-09-20 Thread Animesh Manna
As per bspec check for DSB status before programming any of its register. Inline function added to check the dsb status. Cc: Michel Thierry Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Shashank Sharma Reviewed-by: Shashank Sharma Signed-off-by: Animesh Manna ---

[Intel-gfx] [PATCH v9 04/10] drm/i915/dsb: Indexed register write function for DSB.

2019-09-20 Thread Animesh Manna
DSB can program large set of data through indexed register write (opcode 0x9) in one shot. DSB feature can be used for bulk register programming e.g. gamma lut programming, HDR meta data programming. v1: initial version. v2: simplified code by using ALIGN(). (Chris) v3: ascii table added as code

[Intel-gfx] [PATCH v9 02/10] drm/i915/dsb: DSB context creation.

2019-09-20 Thread Animesh Manna
This patch adds a function, which will internally get the gem buffer for DSB engine. The GEM buffer is from global GTT, and is mapped into CPU domain, contains the data + opcode to be feed to DSB engine. v1: Initial version. v2: - removed some unwanted code. (Chris) - Used

[Intel-gfx] [PATCH v9 00/10] DSB enablement.

2019-09-20 Thread Animesh Manna
Display State Buffer (DSB) is hardware capability which allows driver to batch submit HW programming. As part of initial enablement common api created which currently used to program gamma lut proramming. Going forwad DSB support can be added for HDR and flip related operation. HSDES:

[Intel-gfx] [PATCH v9 03/10] drm/i915/dsb: single register write function for DSB.

2019-09-20 Thread Animesh Manna
DSB support single register write through opcode 0x1. Generic api created which accumulate all single register write in a batch buffer and once DSB is triggered, it will program all the registers at the same time. v1: Initial version. v2: Unused macro removed and cosmetic changes done. (Shashank)

[Intel-gfx] [PATCH v9 01/10] drm/i915/dsb: feature flag added for display state buffer.

2019-09-20 Thread Animesh Manna
Display State Buffer(DSB) is a new hardware capability, introduced in GEN12 display. DSB allows a driver to batch-program display HW registers. Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Shashank Sharma Reviewed-by: Shashank Sharma Signed-off-by: Animesh Manna --- drivers/gpu/drm/i915/i915_drv.h

Re: [Intel-gfx] [v3][PATCH 2/3] drm/i915/color: Extract icl_read_luts()

2019-09-20 Thread Jani Nikula
On Thu, 19 Sep 2019, Swati Sharma wrote: > For icl+, have hw read out to create hw blob of gamma > lut values. icl+ platforms supports multi segmented gamma > mode by default, add hw lut creation for this mode. > > This will be used to validate gamma programming using dsb > (display state buffer)

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915/tgl: Move the SAMPLER_MODE setup into the context

2019-09-20 Thread Patchwork
== Series Details == Series: drm/i915/tgl: Move the SAMPLER_MODE setup into the context URL : https://patchwork.freedesktop.org/series/66954/ State : success == Summary == CI Bug Log - changes from CI_DRM_6925_full -> Patchwork_14465_full

Re: [Intel-gfx] [v3][PATCH 1/3] drm/i915/color: Fix formatting issues

2019-09-20 Thread Jani Nikula
On Thu, 19 Sep 2019, Swati Sharma wrote: > Fixed few formatting issues in multi-segmented load_lut(). > > v3: -style nitting [Jani] > -balanced parentheses moved from patch 2 to 1 [Jani] > -subject prefix change [Jani] > -added commit message [Jani] > > Signed-off-by: Swati Sharma

Re: [Intel-gfx] [PATCH 2/9] drm/print: add drm_debug_enabled()

2019-09-20 Thread Eric Engestrom
On Monday, 2019-09-16 16:23:13 +0300, Jani Nikula wrote: > On Mon, 16 Sep 2019, Eric Engestrom wrote: > > On Monday, 2019-09-16 11:53:24 +0300, Jani Nikula wrote: > >> On Fri, 13 Sep 2019, Eric Engestrom wrote: > >> > On Friday, 2019-09-13 14:51:39 +0300, Jani Nikula wrote: > >> >> Add helper to

[Intel-gfx] [PATCH 13/23] drm/i915: Make hardware readout work on i915.

2019-09-20 Thread Maarten Lankhorst
Unfortunately I have no way to test this, but it should be correct if the bios sets up bigjoiner in a sane way. Skip iterating over bigjoiner slaves, only the master has the state we care about. Add the width of the bigjoiner slave to the reconstructed fb. Hide the bigjoiner slave to userspace,

[Intel-gfx] [PATCH 09/23] drm/i915: Do not add all planes when checking scalers on glk+

2019-09-20 Thread Maarten Lankhorst
We cannot switch between HQ and normal mode on GLK+, so only add planes on platforms where it makes sense. We could probably restrict it even more to only add when scaler users toggles between 1 and 2, but lets just leave it for now. Signed-off-by: Maarten Lankhorst ---

[Intel-gfx] [PATCH 07/23] drm/i915: Remove begin/finish_crtc_commit.

2019-09-20 Thread Maarten Lankhorst
This can all be done from the intel_update_crtc function. Split out the pipe update into a separate function, just like is done for the planes. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/display/intel_display.c | 124 --- 1 file changed, 52 insertions(+), 72

[Intel-gfx] [PATCH 01/23] drm/i915/dp: Fix dsc bpp calculations, v2.

2019-09-20 Thread Maarten Lankhorst
There was a integer wraparound when mode_clock became too high, and we didn't correct for the FEC overhead factor when dividing, with the calculations breaking at HBR3. As a result our calculated bpp was way too high, and the link width limitation never came into effect. Print out the resulting

[Intel-gfx] [PATCH 16/23] drm/i915: Program planes in bigjoiner mode.

2019-09-20 Thread Maarten Lankhorst
Now that we can program planes from the update_slave callback, and we have done all fb pinning correctly, it's time to program those planes as well. We use the update_slave callback as it allows us to use the separate states correctly. Signed-off-by: Maarten Lankhorst ---

[Intel-gfx] [PATCH 23/23] HAX to make it work on the icelake test system

2019-09-20 Thread Maarten Lankhorst
Can't figure out how it works, so just removing it.. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/drm_dp_helper.c | 4 ++-- include/drm/drm_dp_helper.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/drm_dp_helper.c

[Intel-gfx] [PATCH 12/23] drm/i915: Enable big joiner support in enable and disable sequences.

2019-09-20 Thread Maarten Lankhorst
Make vdsc work when no output is enabled. The big joiner needs VDSC on the slave, so enable it and set the appropriate bits. Also update timestamping constants, because slave crtc's are not updated in drm_atomic_helper_update_legacy_modeset_state(). This should be enough to bring up CRTC's in a

[Intel-gfx] [PATCH 05/23] drm/i915: Complete sw/hw split

2019-09-20 Thread Maarten Lankhorst
Now that we separated everything into uapi and hw, it's time to make the split definitive. Remove the union and make a copy of the hw state on modeset and fastset. Color blobs are copied in crtc atomic_check(), right before color management is checked. Signed-off-by: Maarten Lankhorst ---

[Intel-gfx] [PATCH 06/23] drm/i915: Get rid of crtc_state->fb_changed

2019-09-20 Thread Maarten Lankhorst
We had this as an optimization to not do a plane update, but we killed it off because there are so many reasons we may have to do a plane update or fastset that it's best to just assume everything changed. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/display/intel_atomic.c|

[Intel-gfx] [PATCH 08/23] drm/i915: Rename planar linked plane variables

2019-09-20 Thread Maarten Lankhorst
Rename linked_plane to planar_linked_plane and slave to planar_slave, this will make it easier to keep apart bigjoiner linking and planar plane linking. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/display/intel_atomic.c | 7 -- .../gpu/drm/i915/display/intel_atomic_plane.c

[Intel-gfx] [PATCH 15/23] drm/i915: Link planes in a bigjoiner configuration.

2019-09-20 Thread Maarten Lankhorst
Make sure that when a plane is set in a bigjoiner mode, we will add their counterpart to the atomic state as well. This will allow us to make sure all state is available when planes are checked. Because of the funny interactions with bigjoiner and planar YUV formats, we may end up adding a lot of

[Intel-gfx] [PATCH 21/23] drm/i915: Make sure watermarks work correctly with bigjoiner as well.

2019-09-20 Thread Maarten Lankhorst
For bigjoiner, we cannot do drm_atomic_crtc_state_for_each_plane_state() on the crtc, because planes don't match the drm core state. We need a separate master_plane_state for all the properties, and a slave_plane_state for the rectangles/visibility etc. This is similar to how we handle the Y

[Intel-gfx] [PATCH 19/23] drm/i915: Prepare atomic plane check for bigjoiner planes

2019-09-20 Thread Maarten Lankhorst
A lot of delta, the main difference is that the master_plane_state is not the same plane_state as being written to. We read all properties like color key, crtc, fb, rotation from the master_plane_state and coordinate properties. The coordinate properties are different between the 2 bigjoiner

[Intel-gfx] [PATCH 14/23] drm/i915: Prepare update_slave() for bigjoiner plane updates

2019-09-20 Thread Maarten Lankhorst
We want to program slave planes with the master plane_state for properties such as FB, rotation, coordinates, etc, but the slave plane_state for all programming parameters. Instead of special casing NV12 Y-planes, we make the code more generic, Y planes are programmed with separate state from the

[Intel-gfx] [PATCH 20/23] drm/i915: Make prepare_plane_fb() work with bigjoiner planes

2019-09-20 Thread Maarten Lankhorst
Similar to plane programming, we need a separate master_plane_state from which we will read all atomic properties, and plane_state for the real coordinates. Although we add all planes with icl_add_linked_planes(), icl_check_nv12_planes() may add extra Y planes on the slave CRTC. For those planes,

[Intel-gfx] [PATCH 22/23] drm/i915: Add debugfs dumping for bigjoiner.

2019-09-20 Thread Maarten Lankhorst
It's useful to know what the actual clipped state is, rather than the unclipped crtc properties. This is useful when a plane is spread across 2 crtc's, where the slave crtc has no own plane properties but derives its clipped values from the master crtc. Signed-off-by: Maarten Lankhorst ---

[Intel-gfx] [PATCH 17/23] drm/i915: Add intel_update_bigjoiner handling.

2019-09-20 Thread Maarten Lankhorst
Enabling is done in a special sequence and to be fair, so should plane updates be. Ideally the end user never notices the second pipe is used, so use the vblank evasion to cover both pipes. This way ideally everything will be tear free, and updates are really atomic as userspace expects it. The

[Intel-gfx] [PATCH 10/23] drm/i915/dp: Allow big joiner modes in intel_dp_mode_valid()

2019-09-20 Thread Maarten Lankhorst
Small changes to intel_dp_mode_valid(), allow listing modes that can only be supported in the bigjoiner configuration, which is not supported yet. Also unexport a few functions only used internally in intel_dp.c Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/display/intel_dp.c | 98

[Intel-gfx] [PATCH 02/23] HAX drm/i915: Disable FEC entirely for now

2019-09-20 Thread Maarten Lankhorst
I get a permanent FIFO underrun when enabling FEC with big joiner, so for now disable it. It seems that even at 1024x768 resolution without bigjoiner we don't get a working configuration. Flag is set but vblank timing shows that vblanks are delivered slightly faster, so the extra overhead we

[Intel-gfx] [PATCH 11/23] drm/i915: Try to make bigjoiner work in atomic check.

2019-09-20 Thread Maarten Lankhorst
When the clock is higher than the dotclock, try with 2 pipes enabled. If we can enable 2, then we will go into big joiner mode, and steal the adjacent crtc. This only links the crtc's in software, no hardware or plane programming is done yet. Blobs are also copied from the master's crtc_state, so

[Intel-gfx] [PATCH 04/23] drm/i915: Handle a few more cases for hw/sw split

2019-09-20 Thread Maarten Lankhorst
We are still looking at drm_crtc_state in a few places, convert those to use intel_crtc_state instead. Look at uapi/hw where appropriate. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/display/intel_display.c | 14 +++--- drivers/gpu/drm/i915/display/intel_dp_mst.c | 2 +-

[Intel-gfx] [PATCH 18/23] drm/i915: Disable FBC in bigjoiner configuration.

2019-09-20 Thread Maarten Lankhorst
Is there any point in having FBC enabled on half a screen? I suppose it could still save power, but just feels wrong.. Can always be enabled later again if required. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/display/intel_fbc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915/dp: Support for DP HDR outputs (rev9)

2019-09-20 Thread Patchwork
== Series Details == Series: drm/i915/dp: Support for DP HDR outputs (rev9) URL : https://patchwork.freedesktop.org/series/65656/ State : success == Summary == CI Bug Log - changes from CI_DRM_6925_full -> Patchwork_14464_full Summary

[Intel-gfx] ✓ Fi.CI.BAT: success for Revert "drm/i915/tgl: Implement Wa_1406941453"

2019-09-20 Thread Patchwork
== Series Details == Series: Revert "drm/i915/tgl: Implement Wa_1406941453" URL : https://patchwork.freedesktop.org/series/66986/ State : success == Summary == CI Bug Log - changes from CI_DRM_6927 -> Patchwork_14469 Summary ---

[Intel-gfx] [PATCH v2] drm/i915: Restrict qgv points which don't have enough bandwidth.

2019-09-20 Thread Stanislav Lisovskiy
According to BSpec 53998, we should try to restrict qgv points, which can't provide enough bandwidth for desired display configuration. Currently we are just comparing against all of those and take minimum(worst case). v2: Fixed wrong PCode reply mask, removed hardcoded values.

Re: [Intel-gfx] [v3][PATCH 2/3] drm/i915/color: Extract icl_read_luts()

2019-09-20 Thread Jani Nikula
On Thu, 19 Sep 2019, Swati Sharma wrote: > For icl+, have hw read out to create hw blob of gamma > lut values. icl+ platforms supports multi segmented gamma > mode by default, add hw lut creation for this mode. > > This will be used to validate gamma programming using dsb > (display state buffer)

Re: [Intel-gfx] [PATCH] Revert "drm/i915/tgl: Implement Wa_1406941453"

2019-09-20 Thread Chris Wilson
Quoting Chris Wilson (2019-09-20 09:12:54) > Our sanitychecks indicate that while this register is context > saved/restore, the HW does not preserve this bit within the register -- > it likely doesn't exist, or one of those mythical bits that the > architects insist does something despite all

Re: [Intel-gfx] [PATCH] drm/i915/perf: Fix use of kernel-doc format in structure members.

2019-09-20 Thread Lionel Landwerlin
On 20/09/2019 12:47, Anna Karas wrote: Insert structure members names into their descriptions to follow kernel-doc format. Reviewed-by: Chris Wilson Signed-off-by: Anna Karas Acked-by: Lionel Landwerlin --- drivers/gpu/drm/i915/i915_drv.h | 26 ++ 1 file

[Intel-gfx] [PATCH] drm/i915/perf: Fix use of kernel-doc format in structure members.

2019-09-20 Thread Anna Karas
Insert structure members names into their descriptions to follow kernel-doc format. Reviewed-by: Chris Wilson Signed-off-by: Anna Karas --- drivers/gpu/drm/i915/i915_drv.h | 26 ++ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git

[Intel-gfx] ✗ Fi.CI.IGT: failure for adding gamma state checker for icl+ platforms (rev3)

2019-09-20 Thread Patchwork
== Series Details == Series: adding gamma state checker for icl+ platforms (rev3) URL : https://patchwork.freedesktop.org/series/66811/ State : failure == Summary == CI Bug Log - changes from CI_DRM_6925_full -> Patchwork_14463_full

Re: [Intel-gfx] [PATCH v2] drm/i915/tgl: Suspend pre-parser across GTT invalidations

2019-09-20 Thread Chris Wilson
Quoting Mika Kuoppala (2019-09-20 09:14:36) > Chris Wilson writes: > > > Before we execute a batch, we must first issue any and all TLB > > invalidations so that batch picks up the new page table entries. > > Tigerlake's preparser is weakening our post-sync CS_STALL inside the > > invalidate

Re: [Intel-gfx] [PATCH] drm/i915: save AUD_FREQ_CNTRL state at audio domain suspend

2019-09-20 Thread Jani Nikula
On Fri, 20 Sep 2019, Kai Vehmanen wrote: > When audio power domain is suspended, the display driver must > save state of AUD_FREQ_CNTRL on Tiger Lake and Ice Lake > systems. The initial value of the register is set by BIOS and > is read by driver during the audio component init sequence. > > Cc:

Re: [Intel-gfx] [PATCH v8 04/10] drm/i915/dsb: Indexed register write function for DSB.

2019-09-20 Thread Jani Nikula
On Fri, 20 Sep 2019, Animesh Manna wrote: > DSB can program large set of data through indexed register write > (opcode 0x9) in one shot. DSB feature can be used for bulk register > programming e.g. gamma lut programming, HDR meta data programming. > > v1: initial version. > v2: simplified code by

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915/tgl: Suspend pre-parser across GTT invalidations (rev2)

2019-09-20 Thread Patchwork
== Series Details == Series: drm/i915/tgl: Suspend pre-parser across GTT invalidations (rev2) URL : https://patchwork.freedesktop.org/series/66703/ State : success == Summary == CI Bug Log - changes from CI_DRM_6925_full -> Patchwork_14461_full

Re: [Intel-gfx] [PATCH v2 1/3] drm/i915: Mark i915_request.timeline as a volatile, rcu pointer

2019-09-20 Thread Tvrtko Ursulin
On 19/09/2019 18:49, Chris Wilson wrote: Quoting Tvrtko Ursulin (2019-09-19 18:11:14) On 19/09/2019 14:26, Chris Wilson wrote: Quoting Tvrtko Ursulin (2019-09-19 14:02:19) On 19/09/2019 12:19, Chris Wilson wrote: +static struct intel_timeline *get_timeline(struct i915_request *rq) +{ +

[Intel-gfx] [PATCH v1] drm/i915: Restrict qgv points which don't have enough bandwidth.

2019-09-20 Thread Stanislav Lisovskiy
According to BSpec 53998, we should try to restrict qgv points, which can't provide enough bandwidth for desired display configuration. Currently we are just comparing against all of those and take minimum(worst case). Signed-off-by: Stanislav Lisovskiy ---

[Intel-gfx] [PATCH v4] drm/i915: Add TigerLake bandwidth checking

2019-09-20 Thread Stanislav Lisovskiy
Added bandwidth calculation algorithm and checks, similar way as it was done for ICL, some constants were corrected according to BSpec 53998. v2: Start using same icl_get_bw_info function to avoid code duplication. Moved mpagesize to memory info related structure as it is now dependent on

[Intel-gfx] [PATCH] drm/i915: save AUD_FREQ_CNTRL state at audio domain suspend

2019-09-20 Thread Kai Vehmanen
When audio power domain is suspended, the display driver must save state of AUD_FREQ_CNTRL on Tiger Lake and Ice Lake systems. The initial value of the register is set by BIOS and is read by driver during the audio component init sequence. Cc: Jani Nikula Cc: Imre Deak Signed-off-by: Kai

[Intel-gfx] [PATCH] drm/i915: Prevent bonded requests from overtaking each other on preemption

2019-09-20 Thread Chris Wilson
Force bonded requests to run on distinct engines so that they cannot be shuffled onto the same engine where timeslicing will reverse the order. A bonded request will often wait on a semaphore signaled by its master, creating an implicit dependency -- if we ignore that implicit dependency and allow

[Intel-gfx] [RFC PATCH V2 6/6] docs: Sample driver to demonstrate how to implement virtio-mdev framework

2019-09-20 Thread Jason Wang
This sample driver creates mdev device that simulate virtio net device over virtio mdev transport. The device is implemented through vringh and workqueue. A device specific dma ops is to make sure HVA is used directly as the IOVA. This should be sufficient for kernel virtio driver to work. No

[Intel-gfx] [RFC PATCH V2 5/6] vringh: fix copy direction of vringh_iov_push_kern()

2019-09-20 Thread Jason Wang
We want to copy from iov to buf, so the direction was wrong. Signed-off-by: Jason Wang --- drivers/vhost/vringh.c | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/vhost/vringh.c b/drivers/vhost/vringh.c index 08ad0d1f0476..a0a2d74967ef 100644 ---

[Intel-gfx] [RFC PATCH V2 4/6] virtio: introudce a mdev based transport

2019-09-20 Thread Jason Wang
This path introduces a new mdev transport for virtio. This is used to use kernel virtio driver to drive the mediated device that is capable of populating virtqueue directly. A new virtio-mdev driver will be registered to the mdev bus, when a new virtio-mdev device is probed, it will register the

[Intel-gfx] [RFC PATCH V2 3/6] mdev: introduce virtio device and its device ops

2019-09-20 Thread Jason Wang
This patch implements basic support for mdev driver that support virtio transport for kernel driver. Signed-off-by: Jason Wang --- drivers/vfio/mdev/mdev_core.c | 7 ++ include/linux/mdev.h | 3 + include/linux/virtio_mdev.h | 141 ++ 3 files

[Intel-gfx] [RFC PATCH V2 2/6] mdev: introduce device specific ops

2019-09-20 Thread Jason Wang
Currently, except for the crate and remove. The rest fields of mdev_parent_ops is just designed for vfio-mdev driver and may not help for kernel mdev driver. So follow the device id support by previous patch, this patch introduces device specific ops which points to device specific ops (e.g vfio

[Intel-gfx] [RFC PATCH V2 1/6] mdev: class id support

2019-09-20 Thread Jason Wang
Mdev bus only support vfio driver right now, so it doesn't implement match method. But in the future, we may add drivers other than vfio, one example is virtio-mdev[1] driver. This means we need to add device class id support in bus match method to pair the mdev device and mdev driver correctly.

[Intel-gfx] [RFC PATCH V2 0/6] mdev based hardware virtio offloading support

2019-09-20 Thread Jason Wang
Hi all: There are hardware that can do virtio datapath offloading while having its own control path. This path tries to implement a mdev based unified API to support using kernel virtio driver to drive those devices. This is done by introducing a new mdev transport for virtio (virtio_mdev) and

Re: [Intel-gfx] [PATCH v2] drm/i915/tgl: Suspend pre-parser across GTT invalidations

2019-09-20 Thread Mika Kuoppala
Chris Wilson writes: > Before we execute a batch, we must first issue any and all TLB > invalidations so that batch picks up the new page table entries. > Tigerlake's preparser is weakening our post-sync CS_STALL inside the > invalidate pipe-control and allowing the loading of the batch buffer >

[Intel-gfx] [PATCH] Revert "drm/i915/tgl: Implement Wa_1406941453"

2019-09-20 Thread Chris Wilson
Our sanitychecks indicate that while this register is context saved/restore, the HW does not preserve this bit within the register -- it likely doesn't exist, or one of those mythical bits that the architects insist does something despite all appearances to the contrary. For reference,

[Intel-gfx] ✓ Fi.CI.BAT: success for DSB enablement. (rev8)

2019-09-20 Thread Patchwork
== Series Details == Series: DSB enablement. (rev8) URL : https://patchwork.freedesktop.org/series/63013/ State : success == Summary == CI Bug Log - changes from CI_DRM_6925 -> Patchwork_14468 Summary --- **SUCCESS** No

[Intel-gfx] ✗ Fi.CI.SPARSE: warning for DSB enablement. (rev8)

2019-09-20 Thread Patchwork
== Series Details == Series: DSB enablement. (rev8) URL : https://patchwork.freedesktop.org/series/63013/ State : warning == Summary == $ dim sparse origin/drm-tip Sparse version: v0.6.0 Commit: drm/i915/dsb: feature flag added for display state buffer. Okay!

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for DSB enablement. (rev8)

2019-09-20 Thread Patchwork
== Series Details == Series: DSB enablement. (rev8) URL : https://patchwork.freedesktop.org/series/63013/ State : warning == Summary == $ dim checkpatch origin/drm-tip 7569987ee218 drm/i915/dsb: feature flag added for display state buffer. 9c2ddae7699f drm/i915/dsb: DSB context creation.

[Intel-gfx] [PATCH v4] drm/i915: Add TigerLake bandwidth checking

2019-09-20 Thread Stanislav Lisovskiy
Added bandwidth calculation algorithm and checks, similar way as it was done for ICL, some constants were corrected according to BSpec 53998. v2: Start using same icl_get_bw_info function to avoid code duplication. Moved mpagesize to memory info related structure as it is now dependent on

[Intel-gfx] [PATCH v8 06/10] drm/i915/dsb: functions to enable/disable DSB engine.

2019-09-20 Thread Animesh Manna
DSB will be used for performance improvement for some special scenario. DSB engine will be enabled based on need and after completion of its work will be disabled. Api added for enable/disable operation by using DSB_CTRL register. v1: Initial version. v2: POSTING_READ added after writing control

[Intel-gfx] [PATCH v8 08/10] drm/i915/dsb: Enable gamma lut programming using DSB.

2019-09-20 Thread Animesh Manna
Gamma lut programming can be programmed using DSB where bulk register programming can be done using indexed register write which takes number of data and the mmio offset to be written. Currently enabled for 12-bit gamma LUT which is enabled by default and later 8-bit/10-bit will be enabled in

[Intel-gfx] [PATCH v8 09/10] drm/i915/dsb: Enable DSB for gen12.

2019-09-20 Thread Animesh Manna
Enabling DSB by setting 1 to has_dsb flag for gen12. Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Shashank Sharma Reviewed-by: Shashank Sharma Signed-off-by: Animesh Manna --- drivers/gpu/drm/i915/i915_pci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git

[Intel-gfx] [PATCH v8 10/10] drm/i915/dsb: Documentation for DSB.

2019-09-20 Thread Animesh Manna
Added docbook info regarding Display State Buffer(DSB) which is added from gen12 onwards to batch submit display HW programming. v1: Initial version as RFC. Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Shashank Sharma Reviewed-by: Shashank Sharma Signed-off-by: Animesh Manna ---

[Intel-gfx] [PATCH v8 07/10] drm/i915/dsb: function to trigger workload execution of DSB.

2019-09-20 Thread Animesh Manna
Batch buffer will be created through dsb-reg-write function which can have single/multiple request based on usecase and once the buffer is ready commit function will trigger the execution of the batch buffer. All the registers will be updated simultaneously. v1: Initial version. v2: Optimized

[Intel-gfx] [PATCH v8 05/10] drm/i915/dsb: Check DSB engine status.

2019-09-20 Thread Animesh Manna
As per bspec check for DSB status before programming any of its register. Inline function added to check the dsb status. Cc: Michel Thierry Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Shashank Sharma Reviewed-by: Shashank Sharma Signed-off-by: Animesh Manna ---

[Intel-gfx] [PATCH v8 02/10] drm/i915/dsb: DSB context creation.

2019-09-20 Thread Animesh Manna
This patch adds a function, which will internally get the gem buffer for DSB engine. The GEM buffer is from global GTT, and is mapped into CPU domain, contains the data + opcode to be feed to DSB engine. v1: Initial version. v2: - removed some unwanted code. (Chris) - Used

[Intel-gfx] [PATCH v8 04/10] drm/i915/dsb: Indexed register write function for DSB.

2019-09-20 Thread Animesh Manna
DSB can program large set of data through indexed register write (opcode 0x9) in one shot. DSB feature can be used for bulk register programming e.g. gamma lut programming, HDR meta data programming. v1: initial version. v2: simplified code by using ALIGN(). (Chris) v3: ascii table added as code

[Intel-gfx] [PATCH v8 03/10] drm/i915/dsb: single register write function for DSB.

2019-09-20 Thread Animesh Manna
DSB support single register write through opcode 0x1. Generic api created which accumulate all single register write in a batch buffer and once DSB is triggered, it will program all the registers at the same time. v1: Initial version. v2: Unused macro removed and cosmetic changes done. (Shashank)

[Intel-gfx] [PATCH v8 00/10] DSB enablement.

2019-09-20 Thread Animesh Manna
Display State Buffer (DSB) is hardware capability which allows driver to batch submit HW programming. As part of initial enablement common api created which currently used to program gamma lut proramming. Going forwad DSB support can be added for HDR and flip related operation. HSDES:

[Intel-gfx] [PATCH v8 01/10] drm/i915/dsb: feature flag added for display state buffer.

2019-09-20 Thread Animesh Manna
Display State Buffer(DSB) is a new hardware capability, introduced in GEN12 display. DSB allows a driver to batch-program display HW registers. Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Shashank Sharma Reviewed-by: Shashank Sharma Signed-off-by: Animesh Manna --- drivers/gpu/drm/i915/i915_drv.h

Re: [Intel-gfx] [PATCH v2 11/13] drm/i915/tgl: Add dkl phy pll calculations

2019-09-20 Thread Lucas De Marchi
On Thu, Sep 19, 2019 at 2:36 PM Souza, Jose wrote: > > On Thu, 2019-09-19 at 14:27 -0700, Lucas De Marchi wrote: > > On Wed, Sep 18, 2019 at 5:07 PM José Roberto de Souza > > wrote: > > > Extending ICL mg calculations to also support dkl calculations. > > > > > > BSpec: 49204 > > > > > >

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Extract GT render sleep (rc6) management

2019-09-20 Thread Patchwork
== Series Details == Series: drm/i915: Extract GT render sleep (rc6) management URL : https://patchwork.freedesktop.org/series/66937/ State : success == Summary == CI Bug Log - changes from CI_DRM_6923_full -> Patchwork_14459_full Summary

<    1   2