Skip to content

Commit 22dea0b

Browse files
committed
drm/i915: Introduce Kabypoint PCH for Kabylake H/DT.
Some Kabylake SKUs are going to use Kabypoint PCH. It is mainly for Halo and DT ones. >From our specs it doesn't seem that KBP brings any change on the display south engine. So let's consider this as a continuation of SunrisePoint, i.e., SPT+. Since it is easy to get confused by a letter change: KBL = Kabylake - CPU/GPU codename. KBP = Kabypoint - PCH codename. Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96826 Link: http://patchwork.freedesktop.org/patch/msgid/1467418032-15167-1-git-send-email-rodrigo.vivi@intel.com Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
1 parent 3485d99 commit 22dea0b

File tree

4 files changed

+11
-3
lines changed

4 files changed

+11
-3
lines changed

drivers/gpu/drm/i915/i915_drv.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,10 @@ static void intel_detect_pch(struct drm_device *dev)
204204
DRM_DEBUG_KMS("Found SunrisePoint LP PCH\n");
205205
WARN_ON(!IS_SKYLAKE(dev) &&
206206
!IS_KABYLAKE(dev));
207+
} else if (id == INTEL_PCH_KBP_DEVICE_ID_TYPE) {
208+
dev_priv->pch_type = PCH_KBP;
209+
DRM_DEBUG_KMS("Found KabyPoint PCH\n");
210+
WARN_ON(!IS_KABYLAKE(dev));
207211
} else if ((id == INTEL_PCH_P2X_DEVICE_ID_TYPE) ||
208212
(id == INTEL_PCH_P3X_DEVICE_ID_TYPE) ||
209213
((id == INTEL_PCH_QEMU_DEVICE_ID_TYPE) &&

drivers/gpu/drm/i915/i915_drv.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1027,6 +1027,7 @@ enum intel_pch {
10271027
PCH_CPT, /* Cougarpoint PCH */
10281028
PCH_LPT, /* Lynxpoint PCH */
10291029
PCH_SPT, /* Sunrisepoint PCH */
1030+
PCH_KBP, /* Kabypoint PCH */
10301031
PCH_NOP,
10311032
};
10321033

@@ -2883,11 +2884,13 @@ struct drm_i915_cmd_table {
28832884
#define INTEL_PCH_LPT_LP_DEVICE_ID_TYPE 0x9c00
28842885
#define INTEL_PCH_SPT_DEVICE_ID_TYPE 0xA100
28852886
#define INTEL_PCH_SPT_LP_DEVICE_ID_TYPE 0x9D00
2887+
#define INTEL_PCH_KBP_DEVICE_ID_TYPE 0xA200
28862888
#define INTEL_PCH_P2X_DEVICE_ID_TYPE 0x7100
28872889
#define INTEL_PCH_P3X_DEVICE_ID_TYPE 0x7000
28882890
#define INTEL_PCH_QEMU_DEVICE_ID_TYPE 0x2900 /* qemu q35 has 2918 */
28892891

28902892
#define INTEL_PCH_TYPE(dev) (__I915__(dev)->pch_type)
2893+
#define HAS_PCH_KBP(dev) (INTEL_PCH_TYPE(dev) == PCH_KBP)
28912894
#define HAS_PCH_SPT(dev) (INTEL_PCH_TYPE(dev) == PCH_SPT)
28922895
#define HAS_PCH_LPT(dev) (INTEL_PCH_TYPE(dev) == PCH_LPT)
28932896
#define HAS_PCH_LPT_LP(dev) (__I915__(dev)->pch_id == INTEL_PCH_LPT_LP_DEVICE_ID_TYPE)

drivers/gpu/drm/i915/i915_irq.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2425,7 +2425,7 @@ gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
24252425
I915_WRITE(SDEIIR, iir);
24262426
ret = IRQ_HANDLED;
24272427

2428-
if (HAS_PCH_SPT(dev_priv))
2428+
if (HAS_PCH_SPT(dev_priv) || HAS_PCH_KBP(dev_priv))
24292429
spt_irq_handler(dev_priv, iir);
24302430
else
24312431
cpt_irq_handler(dev_priv, iir);
@@ -4588,7 +4588,7 @@ void intel_irq_init(struct drm_i915_private *dev_priv)
45884588
dev->driver->disable_vblank = gen8_disable_vblank;
45894589
if (IS_BROXTON(dev))
45904590
dev_priv->display.hpd_irq_setup = bxt_hpd_irq_setup;
4591-
else if (HAS_PCH_SPT(dev))
4591+
else if (HAS_PCH_SPT(dev) || HAS_PCH_KBP(dev))
45924592
dev_priv->display.hpd_irq_setup = spt_hpd_irq_setup;
45934593
else
45944594
dev_priv->display.hpd_irq_setup = ilk_hpd_irq_setup;

drivers/gpu/drm/i915/intel_panel.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1731,7 +1731,8 @@ intel_panel_init_backlight_funcs(struct intel_panel *panel)
17311731
panel->backlight.set = bxt_set_backlight;
17321732
panel->backlight.get = bxt_get_backlight;
17331733
panel->backlight.hz_to_pwm = bxt_hz_to_pwm;
1734-
} else if (HAS_PCH_LPT(dev_priv) || HAS_PCH_SPT(dev_priv)) {
1734+
} else if (HAS_PCH_LPT(dev_priv) || HAS_PCH_SPT(dev_priv) ||
1735+
HAS_PCH_KBP(dev_priv)) {
17351736
panel->backlight.setup = lpt_setup_backlight;
17361737
panel->backlight.enable = lpt_enable_backlight;
17371738
panel->backlight.disable = lpt_disable_backlight;

0 commit comments

Comments
 (0)