1420 ) |
1420 ) |
1421 { |
1421 { |
1422 ec_slave_t *slave = container_of(kobj, ec_slave_t, kobj); |
1422 ec_slave_t *slave = container_of(kobj, ec_slave_t, kobj); |
1423 |
1423 |
1424 if (attr == &attr_state) { |
1424 if (attr == &attr_state) { |
1425 if (!strcmp(buffer, "INIT\n")) { |
1425 if (!strcmp(buffer, "INIT\n")) |
1426 slave->requested_state = EC_SLAVE_STATE_INIT; |
1426 slave->requested_state = EC_SLAVE_STATE_INIT; |
1427 slave->error_flag = 0; |
1427 else if (!strcmp(buffer, "PREOP\n")) |
1428 return size; |
|
1429 } |
|
1430 else if (!strcmp(buffer, "PREOP\n")) { |
|
1431 slave->requested_state = EC_SLAVE_STATE_PREOP; |
1428 slave->requested_state = EC_SLAVE_STATE_PREOP; |
1432 slave->error_flag = 0; |
1429 else if (!strcmp(buffer, "SAVEOP\n")) |
1433 return size; |
|
1434 } |
|
1435 else if (!strcmp(buffer, "SAVEOP\n")) { |
|
1436 slave->requested_state = EC_SLAVE_STATE_SAVEOP; |
1430 slave->requested_state = EC_SLAVE_STATE_SAVEOP; |
1437 slave->error_flag = 0; |
1431 else if (!strcmp(buffer, "OP\n")) |
1438 return size; |
|
1439 } |
|
1440 else if (!strcmp(buffer, "OP\n")) { |
|
1441 slave->requested_state = EC_SLAVE_STATE_OP; |
1432 slave->requested_state = EC_SLAVE_STATE_OP; |
1442 slave->error_flag = 0; |
1433 else { |
1443 return size; |
1434 EC_ERR("Invalid slave state \"%s\"!\n", buffer); |
1444 } |
1435 return -EINVAL; |
1445 |
1436 } |
1446 EC_ERR("Failed to set slave state!\n"); |
1437 |
|
1438 EC_INFO("Accepted new state %s for slave %i.\n", |
|
1439 buffer, slave->ring_position); |
|
1440 slave->error_flag = 0; |
|
1441 return size; |
1447 } |
1442 } |
1448 else if (attr == &attr_eeprom) { |
1443 else if (attr == &attr_eeprom) { |
1449 if (!ec_slave_write_eeprom(slave, buffer, size)) |
1444 if (!ec_slave_write_eeprom(slave, buffer, size)) |
1450 return size; |
1445 return size; |
1451 } |
1446 } |