2005-04-16 15:20:36 -07:00
# ifndef __ASM_MACH_MPPARSE_H
# define __ASM_MACH_MPPARSE_H
2005-09-03 15:56:34 -07:00
# include <linux/acpi.h>
2007-02-02 19:48:22 +03:00
static inline void mpc_oem_bus_info ( struct mpc_config_bus * m , char * name ,
2005-04-16 15:20:36 -07:00
struct mpc_config_translation * translation )
{
Dprintk ( " Bus #%d is %s \n " , m - > mpc_busid , name ) ;
}
2007-02-02 19:48:22 +03:00
static inline void mpc_oem_pci_bus ( struct mpc_config_bus * m ,
2005-04-16 15:20:36 -07:00
struct mpc_config_translation * translation )
{
}
2005-09-03 15:56:34 -07:00
extern int parse_unisys_oem ( char * oemptr ) ;
extern int find_unisys_acpi_oem_table ( unsigned long * oem_addr ) ;
2005-10-30 14:59:38 -08:00
extern void setup_unisys ( void ) ;
2005-04-16 15:20:36 -07:00
static inline int mps_oem_check ( struct mp_config_table * mpc , char * oem ,
char * productid )
{
if ( mpc - > mpc_oemptr ) {
2007-02-02 19:48:22 +03:00
struct mp_config_oemtable * oem_table =
2005-04-16 15:20:36 -07:00
( struct mp_config_oemtable * ) mpc - > mpc_oemptr ;
if ( ! strncmp ( oem , " UNISYS " , 6 ) )
2005-09-03 15:56:34 -07:00
return parse_unisys_oem ( ( char * ) oem_table ) ;
2005-04-16 15:20:36 -07:00
}
return 0 ;
}
2006-03-23 02:59:36 -08:00
# ifdef CONFIG_ACPI
2007-02-02 19:48:22 +03:00
2006-03-23 02:59:36 -08:00
static inline int es7000_check_dsdt ( void )
2005-09-03 15:56:34 -07:00
{
2007-02-02 19:48:22 +03:00
struct acpi_table_header header ;
memcpy ( & header , 0 , sizeof ( struct acpi_table_header ) ) ;
acpi_get_table_header ( ACPI_SIG_DSDT , 0 , & header ) ;
if ( ! strncmp ( header . oem_id , " UNISYS " , 6 ) )
2005-09-03 15:56:34 -07:00
return 1 ;
return 0 ;
}
2005-04-16 15:20:36 -07:00
/* Hook from generic ACPI tables.c */
static inline int acpi_madt_oem_check ( char * oem_id , char * oem_table_id )
{
2007-02-02 19:48:22 +03:00
unsigned long oem_addr ;
2005-09-03 15:56:34 -07:00
if ( ! find_unisys_acpi_oem_table ( & oem_addr ) ) {
if ( es7000_check_dsdt ( ) )
return parse_unisys_oem ( ( char * ) oem_addr ) ;
else {
setup_unisys ( ) ;
return 1 ;
}
}
2005-04-16 15:20:36 -07:00
return 0 ;
}
2006-03-23 02:59:36 -08:00
# else
static inline int acpi_madt_oem_check ( char * oem_id , char * oem_table_id )
{
return 0 ;
}
# endif
2005-04-16 15:20:36 -07:00
# endif /* __ASM_MACH_MPPARSE_H */