Hi Carlos, ... >+static ssize_t hsc_read(struct file *file, char __user *buf, size_t len, >+ loff_t *ppos __maybe_unused) >+{ ... >+ ret = hsi_async_read(channel->cl, msg); >+ >+ ret = wait_event_interruptible(channel->rx_wait, >+ !list_empty(&channel->rx_msgs_queue)); ... >+} >+ >+static ssize_t hsc_write(struct file *file, const char __user *buf, size_t len, >+ loff_t *ppos __maybe_unused) >+{ >+ ret = hsi_async_write(channel->cl, msg); >+ if (ret < 0) >+ goto out; >+ >+ ret = wait_event_interruptible(channel->tx_wait, >+ !list_empty(&channel->tx_msgs_queue)); I would really like to see support for non-blocking read/write operation here. ... >+ >+static const struct file_operations hsc_fops = { >+ .owner = THIS_MODULE, >+ .read = hsc_read, >+ .write = hsc_write, >+ .unlocked_ioctl = hsc_ioctl, >+ .open = hsc_open, >+ .release = hsc_release, >+}; No poll? Currently we do bulk read/write operations upon modem-crash or firmware upload, and would perfeer to be able do asynchronous IO (select/poll) in order to receive other system events or timeouts during HSI bulk transfers. Regards, Sjur -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html