Lines Matching refs:ec_dev

115 static int cros_ec_spi_receive_response(struct cros_ec_device *ec_dev,  in cros_ec_spi_receive_response()  argument
118 struct cros_ec_spi *ec_spi = ec_dev->priv; in cros_ec_spi_receive_response()
133 trans.rx_buf = ptr = ec_dev->din; in cros_ec_spi_receive_response()
140 dev_err(ec_dev->dev, "spi transfer failed: %d\n", ret); in cros_ec_spi_receive_response()
146 dev_dbg(ec_dev->dev, "msg found at %zd\n", in cros_ec_spi_receive_response()
147 ptr - ec_dev->din); in cros_ec_spi_receive_response()
160 dev_warn(ec_dev->dev, "EC failed to respond in time\n"); in cros_ec_spi_receive_response()
170 BUG_ON(todo < 0 || todo > ec_dev->din_size); in cros_ec_spi_receive_response()
172 memmove(ec_dev->din, ptr, todo); in cros_ec_spi_receive_response()
173 ptr = ec_dev->din + todo; in cros_ec_spi_receive_response()
174 dev_dbg(ec_dev->dev, "need %d, got %d bytes from preamble\n", in cros_ec_spi_receive_response()
187 dev_dbg(ec_dev->dev, "loop, todo=%d, need_len=%d, ptr=%zd\n", in cros_ec_spi_receive_response()
188 todo, need_len, ptr - ec_dev->din); in cros_ec_spi_receive_response()
198 BUG_ON((u8 *)trans.rx_buf - ec_dev->din + todo > in cros_ec_spi_receive_response()
199 ec_dev->din_size); in cros_ec_spi_receive_response()
202 dev_err(ec_dev->dev, "spi transfer failed: %d\n", ret); in cros_ec_spi_receive_response()
206 debug_packet(ec_dev->dev, "interim", ptr, todo); in cros_ec_spi_receive_response()
211 dev_dbg(ec_dev->dev, "loop done, ptr=%zd\n", ptr - ec_dev->din); in cros_ec_spi_receive_response()
222 static int cros_ec_cmd_xfer_spi(struct cros_ec_device *ec_dev, in cros_ec_cmd_xfer_spi() argument
225 struct cros_ec_spi *ec_spi = ec_dev->priv; in cros_ec_cmd_xfer_spi()
233 len = cros_ec_prepare_tx(ec_dev, ec_msg); in cros_ec_cmd_xfer_spi()
234 dev_dbg(ec_dev->dev, "prepared, len=%d\n", len); in cros_ec_cmd_xfer_spi()
246 debug_packet(ec_dev->dev, "out", ec_dev->dout, len); in cros_ec_cmd_xfer_spi()
248 trans.tx_buf = ec_dev->dout; in cros_ec_cmd_xfer_spi()
257 ret = cros_ec_spi_receive_response(ec_dev, in cros_ec_cmd_xfer_spi()
260 dev_err(ec_dev->dev, "spi transfer failed: %d\n", ret); in cros_ec_cmd_xfer_spi()
277 dev_err(ec_dev->dev, "spi transfer failed: %d\n", ret); in cros_ec_cmd_xfer_spi()
281 ptr = ec_dev->din; in cros_ec_cmd_xfer_spi()
285 ret = cros_ec_check_result(ec_dev, ec_msg); in cros_ec_cmd_xfer_spi()
292 dev_err(ec_dev->dev, "packet too long (%d bytes, expected %d)", in cros_ec_cmd_xfer_spi()
306 debug_packet(ec_dev->dev, "in", ptr, len + 3); in cros_ec_cmd_xfer_spi()
309 dev_err(ec_dev->dev, in cros_ec_cmd_xfer_spi()
338 struct cros_ec_device *ec_dev; in cros_ec_spi_probe() local
352 ec_dev = devm_kzalloc(dev, sizeof(*ec_dev), GFP_KERNEL); in cros_ec_spi_probe()
353 if (!ec_dev) in cros_ec_spi_probe()
359 spi_set_drvdata(spi, ec_dev); in cros_ec_spi_probe()
360 ec_dev->dev = dev; in cros_ec_spi_probe()
361 ec_dev->priv = ec_spi; in cros_ec_spi_probe()
362 ec_dev->irq = spi->irq; in cros_ec_spi_probe()
363 ec_dev->cmd_xfer = cros_ec_cmd_xfer_spi; in cros_ec_spi_probe()
364 ec_dev->ec_name = ec_spi->spi->modalias; in cros_ec_spi_probe()
365 ec_dev->phys_name = dev_name(&ec_spi->spi->dev); in cros_ec_spi_probe()
366 ec_dev->parent = &ec_spi->spi->dev; in cros_ec_spi_probe()
367 ec_dev->din_size = EC_MSG_BYTES + EC_MSG_PREAMBLE_COUNT; in cros_ec_spi_probe()
368 ec_dev->dout_size = EC_MSG_BYTES; in cros_ec_spi_probe()
370 err = cros_ec_register(ec_dev); in cros_ec_spi_probe()
383 struct cros_ec_device *ec_dev; in cros_ec_spi_remove() local
385 ec_dev = spi_get_drvdata(spi); in cros_ec_spi_remove()
386 cros_ec_remove(ec_dev); in cros_ec_spi_remove()
394 struct cros_ec_device *ec_dev = dev_get_drvdata(dev); in cros_ec_spi_suspend() local
396 return cros_ec_suspend(ec_dev); in cros_ec_spi_suspend()
401 struct cros_ec_device *ec_dev = dev_get_drvdata(dev); in cros_ec_spi_resume() local
403 return cros_ec_resume(ec_dev); in cros_ec_spi_resume()