static int crosec_command_proto_v3(struct chromeec_command *cec_command, crosec_io_t crosec_io, void *context) { int rv = send_command_proto3(cec_command, crosec_io, context); if (rv < 0) { cec_command->cmd_code = rv; return 1; } return 0; }
static int send_command(struct cros_ec_dev *dev, uint8_t cmd, int cmd_version, const void *dout, int dout_len, uint8_t **dinp, int din_len) { struct dm_cros_ec_ops *ops; int ret = -1; /* Handle protocol version 3 support */ if (dev->protocol_version == 3) { return send_command_proto3(dev, cmd, cmd_version, dout, dout_len, dinp, din_len); } ops = dm_cros_ec_get_ops(dev->dev); ret = ops->command(dev->dev, cmd, cmd_version, (const uint8_t *)dout, dout_len, dinp, din_len); return ret; }
static int send_command(struct cros_ec_dev *dev, uint8_t cmd, int cmd_version, const void *dout, int dout_len, uint8_t **dinp, int din_len) { int ret = -1; /* Handle protocol version 3 support */ if (dev->protocol_version == 3) { return send_command_proto3(dev, cmd, cmd_version, dout, dout_len, dinp, din_len); } switch (dev->interface) { #ifdef CONFIG_CROS_EC_SPI case CROS_EC_IF_SPI: ret = cros_ec_spi_command(dev, cmd, cmd_version, (const uint8_t *)dout, dout_len, dinp, din_len); break; #endif #ifdef CONFIG_CROS_EC_I2C case CROS_EC_IF_I2C: ret = cros_ec_i2c_command(dev, cmd, cmd_version, (const uint8_t *)dout, dout_len, dinp, din_len); break; #endif #ifdef CONFIG_CROS_EC_LPC case CROS_EC_IF_LPC: ret = cros_ec_lpc_command(dev, cmd, cmd_version, (const uint8_t *)dout, dout_len, dinp, din_len); break; #endif case CROS_EC_IF_NONE: default: ret = -1; } return ret; }