@ -200,9 +200,12 @@ static DEVICE_ATTR(_name, S_IWUSR | S_IRUGO, \
static ssize_t cxacru_sysfs_show_ # # _name ( struct device * dev , \
struct device_attribute * attr , char * buf ) \
{ \
struct usb_interface * intf = to_usb_interface ( dev ) ; \
struct usbatm_data * usbatm_instance = usb_get_intfdata ( intf ) ; \
struct cxacru_data * instance = usbatm_instance - > driver_data ; \
struct cxacru_data * instance = to_usbatm_driver_data ( \
to_usb_interface ( dev ) ) ; \
\
if ( instance = = NULL ) \
return - ENODEV ; \
\
return cxacru_sysfs_showattr_ # # _type ( instance - > card_info [ _value ] , buf ) ; \
} \
CXACRU__ATTR_INIT ( _name )
@ -288,22 +291,28 @@ static ssize_t cxacru_sysfs_showattr_MODU(u32 value, char *buf)
static ssize_t cxacru_sysfs_show_mac_address ( struct device * dev ,
struct device_attribute * attr , char * buf )
{
struct usb_interface * intf = to_usb_interface ( dev ) ;
struct usbatm_data * usbatm_instance = usb_get_intfdata ( intf ) ;
struct atm_dev * atm_dev = usbatm_instance - > atm_dev ;
struct cxacru_data * instance = to_usbatm_driver_data (
to_usb_interface ( dev ) ) ;
return snprintf ( buf , PAGE_SIZE , " %pM \n " , atm_dev - > esi ) ;
if ( instance = = NULL | | instance - > usbatm - > atm_dev = = NULL )
return - ENODEV ;
return snprintf ( buf , PAGE_SIZE , " %pM \n " ,
instance - > usbatm - > atm_dev - > esi ) ;
}
static ssize_t cxacru_sysfs_show_adsl_state ( struct device * dev ,
struct device_attribute * attr , char * buf )
{
struct usb_interface * intf = to_usb_interface ( dev ) ;
struct usbatm_data * usbatm_instance = usb_get_intfdata ( intf ) ;
struct cxacru_data * instance = usbatm_instance - > driver_data ;
u32 value = instance - > card_info [ CXINF_LINE_STARTABLE ] ;
static char * str [ ] = { " running " , " stopped " } ;
struct cxacru_data * instance = to_usbatm_driver_data (
to_usb_interface ( dev ) ) ;
u32 value ;
if ( instance = = NULL )
return - ENODEV ;
value = instance - > card_info [ CXINF_LINE_STARTABLE ] ;
if ( unlikely ( value > = ARRAY_SIZE ( str ) ) )
return snprintf ( buf , PAGE_SIZE , " %u \n " , value ) ;
return snprintf ( buf , PAGE_SIZE , " %s \n " , str [ value ] ) ;
@ -312,9 +321,8 @@ static ssize_t cxacru_sysfs_show_adsl_state(struct device *dev,
static ssize_t cxacru_sysfs_store_adsl_state ( struct device * dev ,
struct device_attribute * attr , const char * buf , size_t count )
{
struct usb_interface * intf = to_usb_interface ( dev ) ;
struct usbatm_data * usbatm_instance = usb_get_intfdata ( intf ) ;
struct cxacru_data * instance = usbatm_instance - > driver_data ;
struct cxacru_data * instance = to_usbatm_driver_data (
to_usb_interface ( dev ) ) ;
int ret ;
int poll = - 1 ;
char str_cmd [ 8 ] ;
@ -328,13 +336,16 @@ static ssize_t cxacru_sysfs_store_adsl_state(struct device *dev,
return - EINVAL ;
ret = 0 ;
if ( instance = = NULL )
return - ENODEV ;
if ( mutex_lock_interruptible ( & instance - > adsl_state_serialize ) )
return - ERESTARTSYS ;
if ( ! strcmp ( str_cmd , " stop " ) | | ! strcmp ( str_cmd , " restart " ) ) {
ret = cxacru_cm ( instance , CM_REQUEST_CHIP_ADSL_LINE_STOP , NULL , 0 , NULL , 0 ) ;
if ( ret < 0 ) {
atm_err ( usbatm_instance , " change adsl state: "
atm_err ( instance - > usbatm , " change adsl state: "
" CHIP_ADSL_LINE_STOP returned %d \n " , ret ) ;
ret = - EIO ;
@ -354,7 +365,7 @@ static ssize_t cxacru_sysfs_store_adsl_state(struct device *dev,
if ( ! strcmp ( str_cmd , " start " ) | | ! strcmp ( str_cmd , " restart " ) ) {
ret = cxacru_cm ( instance , CM_REQUEST_CHIP_ADSL_LINE_START , NULL , 0 , NULL , 0 ) ;
if ( ret < 0 ) {
atm_err ( usbatm_instance , " change adsl state: "
atm_err ( instance - > usbatm , " change adsl state: "
" CHIP_ADSL_LINE_START returned %d \n " , ret ) ;
ret = - EIO ;
@ -649,9 +660,6 @@ static int cxacru_atm_start(struct usbatm_data *usbatm_instance,
{
struct cxacru_data * instance = usbatm_instance - > driver_data ;
struct usb_interface * intf = usbatm_instance - > usb_intf ;
/*
struct atm_dev * atm_dev = usbatm_instance - > atm_dev ;
*/
int ret ;
int start_polling = 1 ;