]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/asm-powerpc/firmware.h
Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-serial
[linux-2.6-omap-h63xx.git] / include / asm-powerpc / firmware.h
index 806c142ae9ea9dfa15622514bff45b0ffcc76be9..77069df92bf8f05d80b9ca1e528622d4f6124a27 100644 (file)
 #define FW_FEATURE_MULTITCE    (1UL<<19)
 #define FW_FEATURE_SPLPAR      (1UL<<20)
 #define FW_FEATURE_ISERIES     (1UL<<21)
+#define FW_FEATURE_LPAR                (1UL<<22)
 
 enum {
+#ifdef CONFIG_PPC64
        FW_FEATURE_PSERIES_POSSIBLE = FW_FEATURE_PFT | FW_FEATURE_TCE |
                FW_FEATURE_SPRG0 | FW_FEATURE_DABR | FW_FEATURE_COPY |
                FW_FEATURE_ASR | FW_FEATURE_DEBUG | FW_FEATURE_TERM |
@@ -50,10 +52,10 @@ enum {
                FW_FEATURE_MIGRATE | FW_FEATURE_PERFMON | FW_FEATURE_CRQ |
                FW_FEATURE_VIO | FW_FEATURE_RDMA | FW_FEATURE_LLAN |
                FW_FEATURE_BULK | FW_FEATURE_XDABR | FW_FEATURE_MULTITCE |
-               FW_FEATURE_SPLPAR,
+               FW_FEATURE_SPLPAR | FW_FEATURE_LPAR,
        FW_FEATURE_PSERIES_ALWAYS = 0,
-       FW_FEATURE_ISERIES_POSSIBLE = FW_FEATURE_ISERIES,
-       FW_FEATURE_ISERIES_ALWAYS = FW_FEATURE_ISERIES,
+       FW_FEATURE_ISERIES_POSSIBLE = FW_FEATURE_ISERIES | FW_FEATURE_LPAR,
+       FW_FEATURE_ISERIES_ALWAYS = FW_FEATURE_ISERIES | FW_FEATURE_LPAR,
        FW_FEATURE_POSSIBLE =
 #ifdef CONFIG_PPC_PSERIES
                FW_FEATURE_PSERIES_POSSIBLE |
@@ -70,27 +72,27 @@ enum {
                FW_FEATURE_ISERIES_ALWAYS &
 #endif
                FW_FEATURE_POSSIBLE,
+
+#else /* CONFIG_PPC64 */
+       FW_FEATURE_POSSIBLE = 0,
+       FW_FEATURE_ALWAYS = 0,
+#endif
 };
 
 /* This is used to identify firmware features which are available
  * to the kernel.
  */
-extern unsigned long   ppc64_firmware_features;
+extern unsigned long   powerpc_firmware_features;
 
-static inline unsigned long firmware_has_feature(unsigned long feature)
-{
-       return (FW_FEATURE_ALWAYS & feature) ||
-               (FW_FEATURE_POSSIBLE & ppc64_firmware_features & feature);
-}
+#define firmware_has_feature(feature)                                  \
+       ((FW_FEATURE_ALWAYS & (feature)) ||                             \
+               (FW_FEATURE_POSSIBLE & powerpc_firmware_features & (feature)))
 
-#ifdef CONFIG_PPC_PSERIES
-typedef struct {
-    unsigned long val;
-    char * name;
-} firmware_feature_t;
+extern void system_reset_fwnmi(void);
+extern void machine_check_fwnmi(void);
 
-extern firmware_feature_t firmware_features_table[];
-#endif
+/* This is true if we are using the firmware NMI handler (typically LPAR) */
+extern int fwnmi_active;
 
 #endif /* __ASSEMBLY__ */
 #endif /* __KERNEL__ */