@ -31,7 +31,8 @@ MODULE_DESCRIPTION("Display Output Switcher Lowlevel Control Abstraction");
MODULE_LICENSE ( " GPL " ) ;
MODULE_AUTHOR ( " Luming Yu <luming.yu@intel.com> " ) ;
static ssize_t video_output_show_state ( struct class_device * dev , char * buf )
static ssize_t video_output_show_state ( struct device * dev ,
struct device_attribute * attr , char * buf )
{
ssize_t ret_size = 0 ;
struct output_device * od = to_output_device ( dev ) ;
@ -40,8 +41,9 @@ static ssize_t video_output_show_state(struct class_device *dev,char *buf)
return ret_size ;
}
static ssize_t video_output_store_state ( struct class_device * dev ,
const char * buf , size_t count )
static ssize_t video_output_store_state ( struct device * dev ,
struct device_attribute * attr ,
const char * buf , size_t count )
{
char * endp ;
struct output_device * od = to_output_device ( dev ) ;
@ -60,21 +62,22 @@ static ssize_t video_output_store_state(struct class_device *dev,
return count ;
}
static void video_output_class_ release ( struct class_ device * dev )
static void video_output_release ( struct device * dev )
{
struct output_device * od = to_output_device ( dev ) ;
kfree ( od ) ;
}
static struct class_ device_attribute video_output_attributes [ ] = {
static struct device_attribute video_output_attributes [ ] = {
__ATTR ( state , 0644 , video_output_show_state , video_output_store_state ) ,
__ATTR_NULL ,
} ;
static struct class video_output_class = {
. name = " video_output " ,
. release = video_output_class _release ,
. class_ dev_attrs = video_output_attributes ,
. dev_ release = video_output_release ,
. dev_attrs = video_output_attributes ,
} ;
struct output_device * video_output_register ( const char * name ,
@ -91,11 +94,11 @@ struct output_device *video_output_register(const char *name,
goto error_return ;
}
new_dev - > props = op ;
new_dev - > class_ dev. class = & video_output_class ;
new_dev - > class_ dev. dev = dev ;
strlcpy ( new_dev - > class_ dev. class_id , name , KOBJ_NAME_LEN ) ;
class_set_de vdata( & new_dev - > class_ dev, devdata ) ;
ret_code = class_ device_register( & new_dev - > class_ dev) ;
new_dev - > dev . class = & video_output_class ;
new_dev - > dev . parent = dev ;
strlcpy ( new_dev - > dev . bus_id , name , BUS_ID_SIZE ) ;
dev_set_dr vdata( & new_dev - > dev , devdata ) ;
ret_code = device_register ( & new_dev - > dev ) ;
if ( ret_code ) {
kfree ( new_dev ) ;
goto error_return ;
@ -111,7 +114,7 @@ void video_output_unregister(struct output_device *dev)
{
if ( ! dev )
return ;
class_ device_unregister( & dev - > class_ dev) ;
device_unregister ( & dev - > dev ) ;
}
EXPORT_SYMBOL ( video_output_unregister ) ;