@ -54,6 +54,7 @@ MODULE_ALIAS("wmi:5FB7F034-2C63-45e9-BE91-3D44E2C707E4");
# define HPWMI_HARDWARE_QUERY 0x4
# define HPWMI_HARDWARE_QUERY 0x4
# define HPWMI_WIRELESS_QUERY 0x5
# define HPWMI_WIRELESS_QUERY 0x5
# define HPWMI_HOTKEY_QUERY 0xc
# define HPWMI_HOTKEY_QUERY 0xc
# define HPWMI_FEATURE_QUERY 0xd
# define HPWMI_WIRELESS2_QUERY 0x1b
# define HPWMI_WIRELESS2_QUERY 0x1b
# define HPWMI_POSTCODEERROR_QUERY 0x2a
# define HPWMI_POSTCODEERROR_QUERY 0x2a
@ -292,6 +293,17 @@ static int hp_wmi_tablet_state(void)
return ( state & 0x4 ) ? 1 : 0 ;
return ( state & 0x4 ) ? 1 : 0 ;
}
}
static int hp_wmi_bios_2009_later ( void )
{
int state = 0 ;
int ret = hp_wmi_perform_query ( HPWMI_FEATURE_QUERY , 0 , & state ,
sizeof ( state ) , sizeof ( state ) ) ;
if ( ret )
return ret ;
return ( state & 0x10 ) ? 1 : 0 ;
}
static int hp_wmi_set_block ( void * data , bool blocked )
static int hp_wmi_set_block ( void * data , bool blocked )
{
{
enum hp_wmi_radio r = ( enum hp_wmi_radio ) data ;
enum hp_wmi_radio r = ( enum hp_wmi_radio ) data ;
@ -871,7 +883,7 @@ static int __init hp_wmi_bios_setup(struct platform_device *device)
gps_rfkill = NULL ;
gps_rfkill = NULL ;
rfkill2_count = 0 ;
rfkill2_count = 0 ;
if ( hp_wmi_rfkill_setup ( device ) )
if ( hp_wmi_bios_2009_later ( ) | | hp_wmi_ rfkill_setup ( device ) )
hp_wmi_rfkill2_setup ( device ) ;
hp_wmi_rfkill2_setup ( device ) ;
err = device_create_file ( & device - > dev , & dev_attr_display ) ;
err = device_create_file ( & device - > dev , & dev_attr_display ) ;