void brickpi_in_port_unregister_sensor(struct brickpi_in_port_data *in_port) { if (in_port->sensor) { lego_device_unregister(in_port->sensor); in_port->sensor = NULL; } }
void ms_nxtmmx_out_port_unregister_motor(struct ms_nxtmmx_data *mmx) { if (mmx->motor) { lego_device_unregister(mmx->motor); mmx->motor = NULL; } }
void ev3_output_port_unregister_motor(struct work_struct *work) { struct ev3_output_port_data *data = container_of(work, struct ev3_output_port_data, work); lego_device_unregister(data->motor); data->motor_type = MOTOR_NONE; data->motor = NULL; }
static int ev3_output_port_set_device(void *context, const char *device_name) { struct ev3_output_port_data *data = context; struct lego_device *new_motor; if (data->motor_type != MOTOR_TACHO) return -EOPNOTSUPP; lego_device_unregister(data->motor); data->motor = NULL; new_motor = lego_device_register(device_name, &ev3_motor_device_types[data->motor_type], &data->out_port, NULL, 0); if (IS_ERR(new_motor)) return PTR_ERR(new_motor); data->motor = new_motor; return 0; }