master/cdev.c
changeset 960 36e460ffbb5e
parent 957 ed5ac2e83495
child 965 1aee4aa1def3
equal deleted inserted replaced
959:676e15bc5f27 960:36e460ffbb5e
   476             if (ec_master_debug_level(master, (unsigned int) arg)) {
   476             if (ec_master_debug_level(master, (unsigned int) arg)) {
   477                 retval = -EINVAL;
   477                 retval = -EINVAL;
   478             }
   478             }
   479             break;
   479             break;
   480 
   480 
       
   481         case EC_IOCTL_SLAVE_STATE:
       
   482             {
       
   483                 ec_ioctl_slave_state_t data;
       
   484                 ec_slave_t *slave;
       
   485 
       
   486                 if (copy_from_user(&data, (void __user *) arg, sizeof(data))) {
       
   487                     retval = -EFAULT;
       
   488                     break;
       
   489                 }
       
   490                 
       
   491                 if (!(slave = ec_master_find_slave(
       
   492                                 master, 0, data.slave_position))) {
       
   493                     EC_ERR("Slave %u does not exist!\n", data.slave_position);
       
   494                     retval = -EINVAL;
       
   495                     break;
       
   496                 }
       
   497 
       
   498                 ec_slave_request_state(slave, data.requested_state);
       
   499                 break;
       
   500             }
       
   501 
   481         default:
   502         default:
   482             retval = -ENOIOCTLCMD;
   503             retval = -ENOIOCTLCMD;
   483     }
   504     }
   484 
   505 
   485     return retval;
   506     return retval;