Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ca797d29 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-intel-next-2017-11-17-1' of...

Merge tag 'drm-intel-next-2017-11-17-1' of git://anongit.freedesktop.org/drm/drm-intel into drm-next

More change sets for 4.16:

- Many improvements for selftests and other igt tests (Chris)
- Forcewake with PUNIT->PMIC bus fixes and robustness (Hans)
- Define an engine class for uABI (Tvrtko)
- Context switch fixes and improvements (Chris)
- GT powersavings and power gating simplification and fixes (Chris)
- Other general driver clean-ups (Chris, Lucas, Ville)
- Removing old, useless and/or bad workarounds (Chris, Oscar, Radhakrishna)
- IPS, pipe config, etc in preparation for another Fast Boot attempt (Maarten)
- OA perf fixes and support to Coffee Lake and Cannonlake (Lionel)
- Fixes around GPU fault registers (Michel)
- GEM Proxy (Tina)
- Refactor of Geminilake and Cannonlake plane color handling (James)
- Generalize transcoder loop (Mika Kahola)
- New HW Workaround for Cannonlake and Geminilake (Rodrigo)
- Resume GuC before using GEM (Chris)
- Stolen Memory handling improvements (Ville)
- Initialize entry in PPAT for older compilers (Chris)
- Other fixes and robustness improvements on execbuf (Chris)
- Improve logs of GEM_BUG_ON (Mika Kuoppala)
- Rework with massive rename of GuC functions and files (Sagar)
- Don't sanitize frame start delay if pipe is off (Ville)
- Cannonlake clock fixes (Rodrigo)
- Cannonlake HDMI 2.0 support (Rodrigo)
- Add a GuC doorbells selftest (Michel)
- Add might_sleep() check to our wait_for() (Chris)

Many GVT changes for 4.16:

- CSB HWSP update support (Weinan)
- GVT debug helpers, dyndbg and debugfs (Chuanxiao, Shuo)
- full virtualized opregion (Xiaolin)
- VM health check for sane fallback (Fred)
- workload submission code refactor for future enabling (Zhi)
- Updated repo URL in MAINTAINERS (Zhenyu)
- other many misc fixes

* tag 'drm-intel-next-2017-11-17-1' of git://anongit.freedesktop.org/drm/drm-intel: (260 commits)
  drm/i915: Update DRIVER_DATE to 20171117
  drm/i915: Add a policy note for removing workarounds
  drm/i915/selftests: Report ENOMEM clearly for an allocation failure
  Revert "drm/i915: Display WA #1133 WaFbcSkipSegments:cnl, glk"
  drm/i915: Calculate g4x intermediate watermarks correctly
  drm/i915: Calculate vlv/chv intermediate watermarks correctly, v3.
  drm/i915: Pass crtc_state to ips toggle functions, v2
  drm/i915: Pass idle crtc_state to intel_dp_sink_crc
  drm/i915: Enable FIFO underrun reporting after initial fastset, v4.
  drm/i915: Mark the userptr invalidate workqueue as WQ_MEM_RECLAIM
  drm/i915: Add might_sleep() check to wait_for()
  drm/i915/selftests: Add a GuC doorbells selftest
  drm/i915/cnl: Extend HDMI 2.0 support to CNL.
  drm/i915/cnl: Simplify dco_fraction calculation.
  drm/i915/cnl: Don't blindly replace qdiv.
  drm/i915/cnl: Fix wrpll math for higher freqs.
  drm/i915/cnl: Fix, simplify and unify wrpll variable sizes.
  drm/i915/cnl: Remove useless conversion.
  drm/i915/cnl: Remove spurious central_freq.
  drm/i915/selftests: exercise_ggtt may have nothing to do
  ...
parents 2c1c55cb 010d118c
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -350,10 +350,10 @@ GuC-specific firmware loader
GuC-based command submission
----------------------------

.. kernel-doc:: drivers/gpu/drm/i915/i915_guc_submission.c
.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_submission.c
   :doc: GuC-based command submission

.. kernel-doc:: drivers/gpu/drm/i915/i915_guc_submission.c
.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_submission.c
   :internal:

GuC Firmware Layout
+1 −1
Original line number Diff line number Diff line
@@ -7030,7 +7030,7 @@ M: Zhi Wang <zhi.a.wang@intel.com>
L:	intel-gvt-dev@lists.freedesktop.org
L:	intel-gfx@lists.freedesktop.org
W:	https://01.org/igvt-g
T:	git https://github.com/01org/gvt-linux.git
T:	git https://github.com/intel/gvt-linux.git
S:	Supported
F:	drivers/gpu/drm/i915/gvt/

+25 −0
Original line number Diff line number Diff line
@@ -146,6 +146,18 @@ int iosf_mbi_register_pmic_bus_access_notifier(struct notifier_block *nb);
 */
int iosf_mbi_unregister_pmic_bus_access_notifier(struct notifier_block *nb);

/**
 * iosf_mbi_unregister_pmic_bus_access_notifier_unlocked - Unregister PMIC bus
 *                                                         notifier, unlocked
 *
 * Like iosf_mbi_unregister_pmic_bus_access_notifier(), but for use when the
 * caller has already called iosf_mbi_punit_acquire() itself.
 *
 * @nb: notifier_block to unregister
 */
int iosf_mbi_unregister_pmic_bus_access_notifier_unlocked(
	struct notifier_block *nb);

/**
 * iosf_mbi_call_pmic_bus_access_notifier_chain - Call PMIC bus notifier chain
 *
@@ -154,6 +166,11 @@ int iosf_mbi_unregister_pmic_bus_access_notifier(struct notifier_block *nb);
 */
int iosf_mbi_call_pmic_bus_access_notifier_chain(unsigned long val, void *v);

/**
 * iosf_mbi_assert_punit_acquired - Assert that the P-Unit has been acquired.
 */
void iosf_mbi_assert_punit_acquired(void);

#else /* CONFIG_IOSF_MBI is not enabled */
static inline
bool iosf_mbi_available(void)
@@ -197,12 +214,20 @@ int iosf_mbi_unregister_pmic_bus_access_notifier(struct notifier_block *nb)
	return 0;
}

static inline int
iosf_mbi_unregister_pmic_bus_access_notifier_unlocked(struct notifier_block *nb)
{
	return 0;
}

static inline
int iosf_mbi_call_pmic_bus_access_notifier_chain(unsigned long val, void *v)
{
	return 0;
}

static inline void iosf_mbi_assert_punit_acquired(void) {}

#endif /* CONFIG_IOSF_MBI */

#endif /* IOSF_MBI_SYMS_H */
+17 −2
Original line number Diff line number Diff line
@@ -218,14 +218,23 @@ int iosf_mbi_register_pmic_bus_access_notifier(struct notifier_block *nb)
}
EXPORT_SYMBOL(iosf_mbi_register_pmic_bus_access_notifier);

int iosf_mbi_unregister_pmic_bus_access_notifier_unlocked(
	struct notifier_block *nb)
{
	iosf_mbi_assert_punit_acquired();

	return blocking_notifier_chain_unregister(
				&iosf_mbi_pmic_bus_access_notifier, nb);
}
EXPORT_SYMBOL(iosf_mbi_unregister_pmic_bus_access_notifier_unlocked);

int iosf_mbi_unregister_pmic_bus_access_notifier(struct notifier_block *nb)
{
	int ret;

	/* Wait for the bus to go inactive before unregistering */
	mutex_lock(&iosf_mbi_punit_mutex);
	ret = blocking_notifier_chain_unregister(
				&iosf_mbi_pmic_bus_access_notifier, nb);
	ret = iosf_mbi_unregister_pmic_bus_access_notifier_unlocked(nb);
	mutex_unlock(&iosf_mbi_punit_mutex);

	return ret;
@@ -239,6 +248,12 @@ int iosf_mbi_call_pmic_bus_access_notifier_chain(unsigned long val, void *v)
}
EXPORT_SYMBOL(iosf_mbi_call_pmic_bus_access_notifier_chain);

void iosf_mbi_assert_punit_acquired(void)
{
	WARN_ON(!mutex_is_locked(&iosf_mbi_punit_mutex));
}
EXPORT_SYMBOL(iosf_mbi_assert_punit_acquired);

#ifdef CONFIG_IOSF_MBI_DEBUG
static u32	dbg_mdr;
static u32	dbg_mcr;
+28 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ config DRM_I915_DEBUG
	select SW_SYNC # signaling validation framework (igt/syncobj*)
	select DRM_I915_SW_FENCE_DEBUG_OBJECTS
	select DRM_I915_SELFTEST
	select DRM_I915_TRACE_GEM
        default n
        help
          Choose this option to turn on extra driver debugging that may affect
@@ -49,6 +50,19 @@ config DRM_I915_DEBUG_GEM

          If in doubt, say "N".

config DRM_I915_TRACE_GEM
	bool "Insert extra ftrace output from the GEM internals"
	select TRACING
	default n
	help
	  Enable additional and verbose debugging output that will spam
	  ordinary tests, but may be vital for post-mortem debugging when
	  used with /proc/sys/kernel/ftrace_dump_on_oops

	  Recommended for driver developers only.

	  If in doubt, say "N".

config DRM_I915_SW_FENCE_DEBUG_OBJECTS
        bool "Enable additional driver debugging for fence objects"
        depends on DRM_I915
@@ -90,6 +104,20 @@ config DRM_I915_SELFTEST

	  If in doubt, say "N".

config DRM_I915_SELFTEST_BROKEN
	bool "Enable broken and dangerous selftests"
	depends on DRM_I915_SELFTEST
	depends on BROKEN
	default n
	help
	  This option enables the execution of selftests that are "dangerous"
	  and may trigger unintended HW side-effects as they break strict
	  rules given in the HW specification. For science.

	  Recommended for masochistic driver developers only.

	  If in doubt, say "N".

config DRM_I915_LOW_LEVEL_TRACEPOINTS
        bool "Enable low level request tracing events"
        depends on DRM_I915
Loading