aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>2016-06-13 14:28:01 -0400
committerIngo Molnar <mingo@kernel.org>2016-06-14 06:44:51 -0400
commit9485f8b6a75921e1b9e94b001cdb45872a598534 (patch)
tree68032e8b08fede11853b8ce550f8b64297f113c8
parentbb27570525a71f48347ed0e0c265063e7952bb61 (diff)
x86/platform/atom/punit: Enable support for Merrifield
Intel Merrifield platform has Punit generation that somehow compatible to what is already supported by punit_atom_debug driver. Add necessary bits to enable that support. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: Thomas Gleixner <tglx@linutronix.de> Cc: Bjorn Helgaas <bhelgaas@google.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/1465842481-136852-2-git-send-email-andriy.shevchenko@linux.intel.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r--arch/x86/platform/atom/punit_atom_debug.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/arch/x86/platform/atom/punit_atom_debug.c b/arch/x86/platform/atom/punit_atom_debug.c
index 109782996867..8ff7b9355416 100644
--- a/arch/x86/platform/atom/punit_atom_debug.c
+++ b/arch/x86/platform/atom/punit_atom_debug.c
@@ -26,8 +26,6 @@
26#include <asm/intel-family.h> 26#include <asm/intel-family.h>
27#include <asm/iosf_mbi.h> 27#include <asm/iosf_mbi.h>
28 28
29/* Power gate status reg */
30#define PWRGT_STATUS 0x61
31/* Subsystem config/status Video processor */ 29/* Subsystem config/status Video processor */
32#define VED_SS_PM0 0x32 30#define VED_SS_PM0 0x32
33/* Subsystem config/status ISP (Image Signal Processor) */ 31/* Subsystem config/status ISP (Image Signal Processor) */
@@ -36,12 +34,16 @@
36#define MIO_SS_PM 0x3B 34#define MIO_SS_PM 0x3B
37/* Shift bits for getting status for video, isp and i/o */ 35/* Shift bits for getting status for video, isp and i/o */
38#define SSS_SHIFT 24 36#define SSS_SHIFT 24
37
38/* Power gate status reg */
39#define PWRGT_STATUS 0x61
39/* Shift bits for getting status for graphics rendering */ 40/* Shift bits for getting status for graphics rendering */
40#define RENDER_POS 0 41#define RENDER_POS 0
41/* Shift bits for getting status for media control */ 42/* Shift bits for getting status for media control */
42#define MEDIA_POS 2 43#define MEDIA_POS 2
43/* Shift bits for getting status for Valley View/Baytrail display */ 44/* Shift bits for getting status for Valley View/Baytrail display */
44#define VLV_DISPLAY_POS 6 45#define VLV_DISPLAY_POS 6
46
45/* Subsystem config/status display for Cherry Trail SOC */ 47/* Subsystem config/status display for Cherry Trail SOC */
46#define CHT_DSP_SSS 0x36 48#define CHT_DSP_SSS 0x36
47/* Shift bits for getting status for display */ 49/* Shift bits for getting status for display */
@@ -53,6 +55,14 @@ struct punit_device {
53 int sss_pos; 55 int sss_pos;
54}; 56};
55 57
58static const struct punit_device punit_device_tng[] = {
59 { "DISPLAY", CHT_DSP_SSS, SSS_SHIFT },
60 { "VED", VED_SS_PM0, SSS_SHIFT },
61 { "ISP", ISP_SS_PM0, SSS_SHIFT },
62 { "MIO", MIO_SS_PM, SSS_SHIFT },
63 { NULL }
64};
65
56static const struct punit_device punit_device_byt[] = { 66static const struct punit_device punit_device_byt[] = {
57 { "GFX RENDER", PWRGT_STATUS, RENDER_POS }, 67 { "GFX RENDER", PWRGT_STATUS, RENDER_POS },
58 { "GFX MEDIA", PWRGT_STATUS, MEDIA_POS }, 68 { "GFX MEDIA", PWRGT_STATUS, MEDIA_POS },
@@ -145,6 +155,7 @@ static void punit_dbgfs_unregister(void)
145 155
146static const struct x86_cpu_id intel_punit_cpu_ids[] = { 156static const struct x86_cpu_id intel_punit_cpu_ids[] = {
147 ICPU(INTEL_FAM6_ATOM_SILVERMONT1, punit_device_byt), 157 ICPU(INTEL_FAM6_ATOM_SILVERMONT1, punit_device_byt),
158 ICPU(INTEL_FAM6_ATOM_MERRIFIELD1, punit_device_tng),
148 ICPU(INTEL_FAM6_ATOM_AIRMONT, punit_device_cht), 159 ICPU(INTEL_FAM6_ATOM_AIRMONT, punit_device_cht),
149 {} 160 {}
150}; 161};