diff options
author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2016-06-13 14:28:01 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-06-14 06:44:51 -0400 |
commit | 9485f8b6a75921e1b9e94b001cdb45872a598534 (patch) | |
tree | 68032e8b08fede11853b8ce550f8b64297f113c8 | |
parent | bb27570525a71f48347ed0e0c265063e7952bb61 (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.c | 15 |
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 | ||
58 | static 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 | |||
56 | static const struct punit_device punit_device_byt[] = { | 66 | static 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 | ||
146 | static const struct x86_cpu_id intel_punit_cpu_ids[] = { | 156 | static 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 | }; |