• Home
  • Raw
  • Download

Lines Matching refs:pipe

111 static u32 goldfish_cmd_status(struct goldfish_pipe *pipe, u32 cmd)  in goldfish_cmd_status()  argument
115 struct goldfish_pipe_dev *dev = pipe->dev; in goldfish_cmd_status()
118 writel((u32)(u64)pipe, dev->base + PIPE_REG_CHANNEL); in goldfish_cmd_status()
120 writel((u32)((u64)pipe >> 32), dev->base + PIPE_REG_CHANNEL_HIGH); in goldfish_cmd_status()
128 static void goldfish_cmd(struct goldfish_pipe *pipe, u32 cmd) in goldfish_cmd() argument
131 struct goldfish_pipe_dev *dev = pipe->dev; in goldfish_cmd()
134 writel((u32)(u64)pipe, dev->base + PIPE_REG_CHANNEL); in goldfish_cmd()
136 writel((u32)((u64)pipe >> 32), dev->base + PIPE_REG_CHANNEL_HIGH); in goldfish_cmd()
206 struct goldfish_pipe *pipe, int *status) in access_with_param() argument
214 aps->channel = (unsigned long)pipe; in access_with_param()
233 struct goldfish_pipe *pipe = filp->private_data; in goldfish_pipe_read_write() local
234 struct goldfish_pipe_dev *dev = pipe->dev; in goldfish_pipe_read_write()
240 if (test_bit(BIT_CLOSED_ON_HOST, &pipe->flags)) in goldfish_pipe_read_write()
253 if (mutex_lock_interruptible(&pipe->lock)) in goldfish_pipe_read_write()
282 mutex_unlock(&pipe->lock); in goldfish_pipe_read_write()
288 mutex_unlock(&pipe->lock); in goldfish_pipe_read_write()
314 xaddr, avail, pipe, &status)) { in goldfish_pipe_read_write()
315 writel((u32)(u64)pipe, dev->base + PIPE_REG_CHANNEL); in goldfish_pipe_read_write()
317 writel((u32)((u64)pipe >> 32), dev->base + PIPE_REG_CHANNEL_HIGH); in goldfish_pipe_read_write()
378 set_bit(wakeBit, &pipe->flags); in goldfish_pipe_read_write()
381 goldfish_cmd(pipe, in goldfish_pipe_read_write()
385 mutex_unlock(&pipe->lock); in goldfish_pipe_read_write()
387 while (test_bit(wakeBit, &pipe->flags)) { in goldfish_pipe_read_write()
389 pipe->wake_queue, in goldfish_pipe_read_write()
390 !test_bit(wakeBit, &pipe->flags))) { in goldfish_pipe_read_write()
394 if (test_bit(BIT_CLOSED_ON_HOST, &pipe->flags)) { in goldfish_pipe_read_write()
400 if (mutex_lock_interruptible(&pipe->lock)) in goldfish_pipe_read_write()
403 mutex_unlock(&pipe->lock); in goldfish_pipe_read_write()
428 struct goldfish_pipe *pipe = filp->private_data; in goldfish_pipe_poll() local
432 mutex_lock(&pipe->lock); in goldfish_pipe_poll()
434 poll_wait(filp, &pipe->wake_queue, wait); in goldfish_pipe_poll()
436 status = goldfish_cmd_status(pipe, CMD_POLL); in goldfish_pipe_poll()
438 mutex_unlock(&pipe->lock); in goldfish_pipe_poll()
449 if (test_bit(BIT_CLOSED_ON_HOST, &pipe->flags)) in goldfish_pipe_poll()
469 struct goldfish_pipe *pipe; in goldfish_pipe_interrupt() local
486 pipe = (struct goldfish_pipe *)(ptrdiff_t)channel; in goldfish_pipe_interrupt()
490 set_bit(BIT_CLOSED_ON_HOST, &pipe->flags); in goldfish_pipe_interrupt()
494 clear_bit(BIT_WAKE_ON_READ, &pipe->flags); in goldfish_pipe_interrupt()
496 clear_bit(BIT_WAKE_ON_WRITE, &pipe->flags); in goldfish_pipe_interrupt()
498 wake_up_interruptible(&pipe->wake_queue); in goldfish_pipe_interrupt()
519 struct goldfish_pipe *pipe; in goldfish_pipe_open() local
524 pipe = kzalloc(sizeof(*pipe), GFP_KERNEL); in goldfish_pipe_open()
525 if (pipe == NULL) in goldfish_pipe_open()
528 pipe->dev = dev; in goldfish_pipe_open()
529 mutex_init(&pipe->lock); in goldfish_pipe_open()
530 …ll. pipe_dev pipe_dev=0x%lx new_pipe_addr=0x%lx file=0x%lx\n", __FUNCTION__, pipe_dev, pipe, file); in goldfish_pipe_open()
532 init_waitqueue_head(&pipe->wake_queue); in goldfish_pipe_open()
539 status = goldfish_cmd_status(pipe, CMD_OPEN); in goldfish_pipe_open()
541 kfree(pipe); in goldfish_pipe_open()
546 file->private_data = pipe; in goldfish_pipe_open()
552 struct goldfish_pipe *pipe = filp->private_data; in goldfish_pipe_release() local
554 DPRINT("%s: call. pipe=0x%lx file=0x%lx\n", __FUNCTION__, pipe, filp); in goldfish_pipe_release()
556 goldfish_cmd(pipe, CMD_CLOSE); in goldfish_pipe_release()
557 kfree(pipe); in goldfish_pipe_release()