iforce_serio
struct iforce_serio *iforce_serio = serio_get_drvdata(serio);
struct iforce *iforce = &iforce_serio->iforce;
if (!iforce_serio->pkt) {
iforce_serio->pkt = 1;
if (!iforce_serio->id) {
iforce_serio->pkt = 0;
iforce_serio->id = data;
if (!iforce_serio->len) {
iforce_serio->pkt = 0;
iforce_serio->id = 0;
iforce_serio->len = data;
if (iforce_serio->idx < iforce_serio->len) {
iforce_serio->data_in[iforce_serio->idx++] = data;
iforce_serio->csum += data;
if (iforce_serio->idx == iforce_serio->len) {
if (iforce_serio->expect_packet == iforce_serio->id) {
iforce_serio->expect_packet = 0;
memcpy(iforce_serio->cmd_response,
iforce_serio->data_in, IFORCE_MAX_LENGTH);
iforce_serio->cmd_response_len = iforce_serio->len;
iforce_process_packet(iforce, iforce_serio->id,
iforce_serio->data_in,
iforce_serio->len);
iforce_serio->pkt = 0;
iforce_serio->id = 0;
iforce_serio->len = 0;
iforce_serio->idx = 0;
iforce_serio->csum = 0;
struct iforce_serio *iforce_serio;
iforce_serio = kzalloc_obj(*iforce_serio);
if (!iforce_serio)
iforce_serio->iforce.xport_ops = &iforce_serio_xport_ops;
iforce_serio->serio = serio;
serio_set_drvdata(serio, iforce_serio);
err = iforce_init_device(&serio->dev, BUS_RS232, &iforce_serio->iforce);
kfree(iforce_serio);
struct iforce_serio *iforce_serio = serio_get_drvdata(serio);
input_unregister_device(iforce_serio->iforce.dev);
kfree(iforce_serio);
struct iforce_serio *iforce_serio = container_of(iforce,
struct iforce_serio,
serio_write(iforce_serio->serio, 0x2b);
serio_write(iforce_serio->serio,
serio_write(iforce_serio->serio,
serio_write(iforce_serio->serio, cs);
struct iforce_serio *iforce_serio = container_of(iforce,
struct iforce_serio,
iforce_serio->expect_packet = HI(FF_CMD_QUERY);
iforce_serio->cmd_response_len = 0;
!iforce_serio->expect_packet, HZ);
if (iforce_serio->expect_packet) {
iforce_serio->expect_packet = 0;
if (iforce_serio->cmd_response[0] != id)
memcpy(response_data, iforce_serio->cmd_response,
iforce_serio->cmd_response_len);
*response_len = iforce_serio->cmd_response_len;