2008-06-26 22:25:33 +02:00
/*
* HID driver for some dell " special " devices
*
* Copyright ( c ) 1999 Andreas Gal
* Copyright ( c ) 2000 - 2005 Vojtech Pavlik < vojtech @ suse . cz >
* Copyright ( c ) 2005 Michael Haboustak < mike - @ cinci . rr . com > for Concept2 , Inc
* Copyright ( c ) 2006 - 2007 Jiri Kosina
* Copyright ( c ) 2007 Paul Walmsley
* Copyright ( c ) 2008 Jiri Slaby
*/
/*
* This program is free software ; you can redistribute it and / or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation ; either version 2 of the License , or ( at your option )
* any later version .
*/
# include <linux/device.h>
# include <linux/hid.h>
# include <linux/module.h>
# include "hid-ids.h"
static int dell_probe ( struct hid_device * hdev , const struct hid_device_id * id )
{
int ret ;
ret = hid_parse ( hdev ) ;
if ( ret ) {
dev_err ( & hdev - > dev , " parse failed \n " ) ;
goto err_free ;
}
2008-06-27 00:04:24 +02:00
ret = hid_hw_start ( hdev , HID_CONNECT_DEFAULT ) ;
2008-06-26 22:25:33 +02:00
if ( ret ) {
dev_err ( & hdev - > dev , " hw start failed \n " ) ;
goto err_free ;
}
2008-06-27 20:41:02 +02:00
usbhid_set_leds ( hdev ) ;
2008-06-26 22:25:33 +02:00
return 0 ;
err_free :
return ret ;
}
static const struct hid_device_id dell_devices [ ] = {
{ HID_USB_DEVICE ( USB_VENDOR_ID_DELL , USB_DEVICE_ID_DELL_W7658 ) } ,
2008-10-14 11:08:47 -02:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_DELL , USB_DEVICE_ID_DELL_SK8115 ) } ,
2008-10-30 01:06:13 +01:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_GENERIC_13BA , USB_DEVICE_ID_GENERIC_13BA_KBD_MOUSE ) } ,
2008-06-26 22:25:33 +02:00
{ }
} ;
MODULE_DEVICE_TABLE ( hid , dell_devices ) ;
static struct hid_driver dell_driver = {
. name = " dell " ,
. id_table = dell_devices ,
. probe = dell_probe ,
} ;
static int dell_init ( void )
{
return hid_register_driver ( & dell_driver ) ;
}
static void dell_exit ( void )
{
hid_unregister_driver ( & dell_driver ) ;
}
module_init ( dell_init ) ;
module_exit ( dell_exit ) ;
MODULE_LICENSE ( " GPL " ) ;
HID_COMPAT_LOAD_DRIVER ( dell ) ;