commit: http://blackfin.uclinux.org/git/?p=linux-kernel;a=commitdiff;h=ef82479405bc4e002dca83f21f59985f49c4acda branch: http://blackfin.uclinux.org/git/?p=linux-kernel;a=shortlog;h=refs/heads/trunk
Signed-off-by: Scott Jiang <[email protected]> --- drivers/media/platform/blackfin/bfin_display.c | 388 ++++++++++++------------ 1 files changed, 194 insertions(+), 194 deletions(-) diff --git a/drivers/media/platform/blackfin/bfin_display.c b/drivers/media/platform/blackfin/bfin_display.c index 9a31d53..7e2255a 100644 --- a/drivers/media/platform/blackfin/bfin_display.c +++ b/drivers/media/platform/blackfin/bfin_display.c @@ -1,7 +1,7 @@ /* - * Analog Devices video display driver + * Analog Devices video display driver for (E)PPI interface * - * Copyright (c) 2011 Analog Devices Inc. + * Copyright (c) 2011 - 2013 Analog Devices Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -47,7 +47,7 @@ #define DISPLAY_DRV_NAME "bfin_display" #define DISP_MIN_NUM_BUF 2 -struct disp_format { +struct bfin_disp_format { char *desc; u32 pixelformat; enum v4l2_mbus_pixelcode mbus_code; @@ -55,13 +55,13 @@ struct disp_format { int dlen; /* data length for ppi in bits */ }; -struct disp_buffer { +struct bfin_disp_buffer { struct vb2_buffer vb; struct list_head list; }; -struct disp_device { - /* capture device instance */ +struct bfin_disp_device { + /* display device instance */ struct v4l2_device v4l2_dev; /* v4l2 control handler */ struct v4l2_ctrl_handler ctrl_handler; @@ -69,7 +69,7 @@ struct disp_device { struct video_device *video_dev; /* sub device instance */ struct v4l2_subdev *sd; - /* capture config */ + /* display config */ struct bfin_display_config *cfg; /* ppi interface */ struct ppi_if *ppi; @@ -86,11 +86,11 @@ struct disp_device { /* data length for ppi in bits */ int dlen; /* used to store encoder supported format */ - struct disp_format *enc_formats; + struct bfin_disp_format *enc_formats; /* number of encoder formats array */ int num_enc_formats; /* pointing to current video buffer */ - struct disp_buffer *cur_frm; + struct bfin_disp_buffer *cur_frm; /* buffer queue used in videobuf2 */ struct vb2_queue buffer_queue; /* allocator-specific contexts for each plane */ @@ -103,13 +103,13 @@ struct disp_device { struct mutex mutex; }; -struct disp_fh { +struct bfin_disp_fh { struct v4l2_fh fh; /* indicates whether this file handle is doing IO */ bool io_allowed; }; -static const struct disp_format disp_formats[] = { +static const struct bfin_disp_format bfin_disp_formats[] = { { .desc = "YCbCr 4:2:2 Interleaved UYVY 8bits", .pixelformat = V4L2_PIX_FMT_UYVY, @@ -147,19 +147,19 @@ static const struct disp_format disp_formats[] = { }, }; -#define DISP_MAX_FMTS ARRAY_SIZE(disp_formats) +#define DISP_MAX_FMTS ARRAY_SIZE(bfin_disp_formats) -static irqreturn_t disp_isr(int irq, void *dev_id); +static irqreturn_t bfin_disp_isr(int irq, void *dev_id); -static struct disp_buffer *to_disp_vb(struct vb2_buffer *vb) +static struct bfin_disp_buffer *to_bfin_disp_vb(struct vb2_buffer *vb) { - return container_of(vb, struct disp_buffer, vb); + return container_of(vb, struct bfin_disp_buffer, vb); } -static int disp_init_encoder_formats(struct disp_device *disp) +static int bfin_disp_init_encoder_formats(struct bfin_disp_device *disp) { enum v4l2_mbus_pixelcode code; - struct disp_format *df; + struct bfin_disp_format *df; unsigned int num_formats = 0; int i, j; @@ -177,74 +177,74 @@ static int disp_init_encoder_formats(struct disp_device *disp) v4l2_subdev_call(disp->sd, video, enum_mbus_fmt, i, &code); for (j = 0; j < DISP_MAX_FMTS; j++) - if (code == disp_formats[j].mbus_code) + if (code == bfin_disp_formats[j].mbus_code) break; if (j == DISP_MAX_FMTS) { /* we don't allow this encoder working with our bridge */ kfree(df); return -EINVAL; } - df[i] = disp_formats[j]; + df[i] = bfin_disp_formats[j]; } disp->enc_formats = df; disp->num_enc_formats = num_formats; return 0; } -static void disp_free_encoder_formats(struct disp_device *disp) +static void bfin_disp_free_encoder_formats(struct bfin_disp_device *disp) { disp->num_enc_formats = 0; kfree(disp->enc_formats); disp->enc_formats = NULL; } -static int disp_open(struct file *file) +static int bfin_disp_open(struct file *file) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); struct video_device *vfd = disp->video_dev; - struct disp_fh *disp_fh; + struct bfin_disp_fh *bfin_disp_fh; if (!disp->sd) { v4l2_err(&disp->v4l2_dev, "No sub device registered\n"); return -ENODEV; } - disp_fh = kzalloc(sizeof(*disp_fh), GFP_KERNEL); - if (!disp_fh) { + bfin_disp_fh = kzalloc(sizeof(*bfin_disp_fh), GFP_KERNEL); + if (!bfin_disp_fh) { v4l2_err(&disp->v4l2_dev, "unable to allocate memory for file handle object\n"); return -ENOMEM; } - v4l2_fh_init(&disp_fh->fh, vfd); + v4l2_fh_init(&bfin_disp_fh->fh, vfd); /* store pointer to v4l2_fh in private_data member of file */ - file->private_data = &disp_fh->fh; - v4l2_fh_add(&disp_fh->fh); - disp_fh->io_allowed = false; + file->private_data = &bfin_disp_fh->fh; + v4l2_fh_add(&bfin_disp_fh->fh); + bfin_disp_fh->io_allowed = false; return 0; } -static int disp_release(struct file *file) +static int bfin_disp_release(struct file *file) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); struct v4l2_fh *fh = file->private_data; - struct disp_fh *disp_fh = container_of(fh, struct disp_fh, fh); + struct bfin_disp_fh *bfin_disp_fh = container_of(fh, struct bfin_disp_fh, fh); /* if this instance is doing IO */ - if (disp_fh->io_allowed) + if (bfin_disp_fh->io_allowed) vb2_queue_release(&disp->buffer_queue); file->private_data = NULL; - v4l2_fh_del(&disp_fh->fh); - v4l2_fh_exit(&disp_fh->fh); - kfree(disp_fh); + v4l2_fh_del(&bfin_disp_fh->fh); + v4l2_fh_exit(&bfin_disp_fh->fh); + kfree(bfin_disp_fh); return 0; } -static int disp_mmap(struct file *file, struct vm_area_struct *vma) +static int bfin_disp_mmap(struct file *file, struct vm_area_struct *vma) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); int ret; if (mutex_lock_interruptible(&disp->mutex)) @@ -255,13 +255,13 @@ static int disp_mmap(struct file *file, struct vm_area_struct *vma) } #ifndef CONFIG_MMU -static unsigned long disp_get_unmapped_area(struct file *file, +static unsigned long bfin_disp_get_unmapped_area(struct file *file, unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); int ret; if (mutex_lock_interruptible(&disp->mutex)) @@ -276,9 +276,9 @@ static unsigned long disp_get_unmapped_area(struct file *file, } #endif -static unsigned int disp_poll(struct file *file, poll_table *wait) +static unsigned int bfin_disp_poll(struct file *file, poll_table *wait) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); int ret; mutex_lock(&disp->mutex); @@ -287,12 +287,12 @@ static unsigned int disp_poll(struct file *file, poll_table *wait) return ret; } -static int disp_queue_setup(struct vb2_queue *vq, +static int bfin_disp_queue_setup(struct vb2_queue *vq, const struct v4l2_format *fmt, unsigned int *nbuffers, unsigned int *nplanes, unsigned int sizes[], void *alloc_ctxs[]) { - struct disp_device *disp = vb2_get_drv_priv(vq); + struct bfin_disp_device *disp = vb2_get_drv_priv(vq); if (*nbuffers < DISP_MIN_NUM_BUF) *nbuffers = DISP_MIN_NUM_BUF; @@ -304,18 +304,18 @@ static int disp_queue_setup(struct vb2_queue *vq, return 0; } -static int disp_buffer_init(struct vb2_buffer *vb) +static int bfin_disp_buffer_init(struct vb2_buffer *vb) { - struct disp_buffer *buf = to_disp_vb(vb); + struct bfin_disp_buffer *buf = to_bfin_disp_vb(vb); INIT_LIST_HEAD(&buf->list); return 0; } -static int disp_buffer_prepare(struct vb2_buffer *vb) +static int bfin_disp_buffer_prepare(struct vb2_buffer *vb) { - struct disp_device *disp = vb2_get_drv_priv(vb->vb2_queue); - struct disp_buffer *buf = to_disp_vb(vb); + struct bfin_disp_device *disp = vb2_get_drv_priv(vb->vb2_queue); + struct bfin_disp_buffer *buf = to_bfin_disp_vb(vb); unsigned long size; size = disp->fmt.sizeimage; @@ -329,10 +329,10 @@ static int disp_buffer_prepare(struct vb2_buffer *vb) return 0; } -static void disp_buffer_queue(struct vb2_buffer *vb) +static void bfin_disp_buffer_queue(struct vb2_buffer *vb) { - struct disp_device *disp = vb2_get_drv_priv(vb->vb2_queue); - struct disp_buffer *buf = to_disp_vb(vb); + struct bfin_disp_device *disp = vb2_get_drv_priv(vb->vb2_queue); + struct bfin_disp_buffer *buf = to_bfin_disp_vb(vb); unsigned long flags; spin_lock_irqsave(&disp->lock, flags); @@ -340,10 +340,10 @@ static void disp_buffer_queue(struct vb2_buffer *vb) spin_unlock_irqrestore(&disp->lock, flags); } -static void disp_buffer_cleanup(struct vb2_buffer *vb) +static void bfin_disp_buffer_cleanup(struct vb2_buffer *vb) { - struct disp_device *disp = vb2_get_drv_priv(vb->vb2_queue); - struct disp_buffer *buf = to_disp_vb(vb); + struct bfin_disp_device *disp = vb2_get_drv_priv(vb->vb2_queue); + struct bfin_disp_buffer *buf = to_bfin_disp_vb(vb); unsigned long flags; spin_lock_irqsave(&disp->lock, flags); @@ -351,21 +351,21 @@ static void disp_buffer_cleanup(struct vb2_buffer *vb) spin_unlock_irqrestore(&disp->lock, flags); } -static void disp_lock(struct vb2_queue *vq) +static void bfin_disp_lock(struct vb2_queue *vq) { - struct disp_device *disp = vb2_get_drv_priv(vq); + struct bfin_disp_device *disp = vb2_get_drv_priv(vq); mutex_lock(&disp->mutex); } -static void disp_unlock(struct vb2_queue *vq) +static void bfin_disp_unlock(struct vb2_queue *vq) { - struct disp_device *disp = vb2_get_drv_priv(vq); + struct bfin_disp_device *disp = vb2_get_drv_priv(vq); mutex_unlock(&disp->mutex); } -static int disp_start_streaming(struct vb2_queue *vq, unsigned int count) +static int bfin_disp_start_streaming(struct vb2_queue *vq, unsigned int count) { - struct disp_device *disp = vb2_get_drv_priv(vq); + struct bfin_disp_device *disp = vb2_get_drv_priv(vq); struct ppi_if *ppi = disp->ppi; struct ppi_params params; int ret; @@ -424,7 +424,7 @@ static int disp_start_streaming(struct vb2_queue *vq, unsigned int count) } /* attach ppi DMA irq handler */ - ret = ppi->ops->attach_irq(ppi, disp_isr); + ret = ppi->ops->attach_irq(ppi, bfin_disp_isr); if (ret < 0) { v4l2_err(&disp->v4l2_dev, "Error in attaching interrupt handler\n"); @@ -434,9 +434,9 @@ static int disp_start_streaming(struct vb2_queue *vq, unsigned int count) return 0; } -static int disp_stop_streaming(struct vb2_queue *vq) +static int bfin_disp_stop_streaming(struct vb2_queue *vq) { - struct disp_device *disp = vb2_get_drv_priv(vq); + struct bfin_disp_device *disp = vb2_get_drv_priv(vq); struct ppi_if *ppi = disp->ppi; unsigned long flags; int ret; @@ -455,7 +455,7 @@ static int disp_stop_streaming(struct vb2_queue *vq) /* release all active buffers */ while (!list_empty(&disp->dma_queue)) { disp->cur_frm = list_entry(disp->dma_queue.next, - struct disp_buffer, list); + struct bfin_disp_buffer, list); list_del(&disp->cur_frm->list); vb2_buffer_done(&disp->cur_frm->vb, VB2_BUF_STATE_ERROR); } @@ -463,73 +463,73 @@ static int disp_stop_streaming(struct vb2_queue *vq) return 0; } -static struct vb2_ops disp_video_qops = { - .queue_setup = disp_queue_setup, - .buf_init = disp_buffer_init, - .buf_prepare = disp_buffer_prepare, - .buf_cleanup = disp_buffer_cleanup, - .buf_queue = disp_buffer_queue, - .wait_prepare = disp_unlock, - .wait_finish = disp_lock, - .start_streaming = disp_start_streaming, - .stop_streaming = disp_stop_streaming, +static struct vb2_ops bfin_disp_video_qops = { + .queue_setup = bfin_disp_queue_setup, + .buf_init = bfin_disp_buffer_init, + .buf_prepare = bfin_disp_buffer_prepare, + .buf_cleanup = bfin_disp_buffer_cleanup, + .buf_queue = bfin_disp_buffer_queue, + .wait_prepare = bfin_disp_unlock, + .wait_finish = bfin_disp_lock, + .start_streaming = bfin_disp_start_streaming, + .stop_streaming = bfin_disp_stop_streaming, }; -static int disp_reqbufs(struct file *file, void *priv, +static int bfin_disp_reqbufs(struct file *file, void *priv, struct v4l2_requestbuffers *req_buf) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); struct vb2_queue *vq = &disp->buffer_queue; struct v4l2_fh *fh = file->private_data; - struct disp_fh *disp_fh = container_of(fh, struct disp_fh, fh); + struct bfin_disp_fh *bfin_disp_fh = container_of(fh, struct bfin_disp_fh, fh); if (vb2_is_busy(vq)) return -EBUSY; - disp_fh->io_allowed = true; + bfin_disp_fh->io_allowed = true; return vb2_reqbufs(vq, req_buf); } -static int disp_querybuf(struct file *file, void *priv, +static int bfin_disp_querybuf(struct file *file, void *priv, struct v4l2_buffer *buf) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); return vb2_querybuf(&disp->buffer_queue, buf); } -static int disp_qbuf(struct file *file, void *priv, +static int bfin_disp_qbuf(struct file *file, void *priv, struct v4l2_buffer *buf) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); struct v4l2_fh *fh = file->private_data; - struct disp_fh *disp_fh = container_of(fh, struct disp_fh, fh); + struct bfin_disp_fh *bfin_disp_fh = container_of(fh, struct bfin_disp_fh, fh); - if (!disp_fh->io_allowed) + if (!bfin_disp_fh->io_allowed) return -EBUSY; return vb2_qbuf(&disp->buffer_queue, buf); } -static int disp_dqbuf(struct file *file, void *priv, +static int bfin_disp_dqbuf(struct file *file, void *priv, struct v4l2_buffer *buf) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); struct v4l2_fh *fh = file->private_data; - struct disp_fh *disp_fh = container_of(fh, struct disp_fh, fh); + struct bfin_disp_fh *bfin_disp_fh = container_of(fh, struct bfin_disp_fh, fh); - if (!disp_fh->io_allowed) + if (!bfin_disp_fh->io_allowed) return -EBUSY; return vb2_dqbuf(&disp->buffer_queue, buf, file->f_flags & O_NONBLOCK); } -static irqreturn_t disp_isr(int irq, void *dev_id) +static irqreturn_t bfin_disp_isr(int irq, void *dev_id) { struct ppi_if *ppi = dev_id; - struct disp_device *disp = ppi->priv; + struct bfin_disp_device *disp = ppi->priv; struct timeval timevalue; struct vb2_buffer *vb = &disp->cur_frm->vb; dma_addr_t addr; @@ -541,7 +541,7 @@ static irqreturn_t disp_isr(int irq, void *dev_id) vb->v4l2_buf.timestamp = timevalue; vb2_buffer_done(vb, VB2_BUF_STATE_DONE); disp->cur_frm = list_entry(disp->dma_queue.next, - struct disp_buffer, list); + struct bfin_disp_buffer, list); list_del(&disp->cur_frm->list); } @@ -556,11 +556,11 @@ static irqreturn_t disp_isr(int irq, void *dev_id) return IRQ_HANDLED; } -static int disp_streamon(struct file *file, void *priv, +static int bfin_disp_streamon(struct file *file, void *priv, enum v4l2_buf_type buf_type) { - struct disp_device *disp = video_drvdata(file); - struct disp_fh *fh = file->private_data; + struct bfin_disp_device *disp = video_drvdata(file); + struct bfin_disp_fh *fh = file->private_data; struct ppi_if *ppi = disp->ppi; dma_addr_t addr; int ret; @@ -582,7 +582,7 @@ static int disp_streamon(struct file *file, void *priv, /* get the next frame from the dma queue */ disp->cur_frm = list_entry(disp->dma_queue.next, - struct disp_buffer, list); + struct bfin_disp_buffer, list); /* remove buffer from the dma queue */ list_del(&disp->cur_frm->list); addr = vb2_dma_contig_plane_dma_addr(&disp->cur_frm->vb, 0); @@ -597,11 +597,11 @@ err: return ret; } -static int disp_streamoff(struct file *file, void *priv, +static int bfin_disp_streamoff(struct file *file, void *priv, enum v4l2_buf_type buf_type) { - struct disp_device *disp = video_drvdata(file); - struct disp_fh *fh = file->private_data; + struct bfin_disp_device *disp = video_drvdata(file); + struct bfin_disp_fh *fh = file->private_data; if (!fh->io_allowed) return -EBUSY; @@ -609,17 +609,17 @@ static int disp_streamoff(struct file *file, void *priv, return vb2_streamoff(&disp->buffer_queue, buf_type); } -static int disp_g_std(struct file *file, void *priv, v4l2_std_id *std) +static int bfin_disp_g_std(struct file *file, void *priv, v4l2_std_id *std) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); *std = disp->std; return 0; } -static int disp_s_std(struct file *file, void *priv, v4l2_std_id *std) +static int bfin_disp_s_std(struct file *file, void *priv, v4l2_std_id *std) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); int ret; if (vb2_is_busy(&disp->buffer_queue)) @@ -633,10 +633,10 @@ static int disp_s_std(struct file *file, void *priv, v4l2_std_id *std) return 0; } -static int disp_g_dv_timings(struct file *file, void *priv, +static int bfin_disp_g_dv_timings(struct file *file, void *priv, struct v4l2_dv_timings *timings) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); int ret; ret = v4l2_subdev_call(disp->sd, video, @@ -648,10 +648,10 @@ static int disp_g_dv_timings(struct file *file, void *priv, return 0; } -static int disp_s_dv_timings(struct file *file, void *priv, +static int bfin_disp_s_dv_timings(struct file *file, void *priv, struct v4l2_dv_timings *timings) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); int ret; if (vb2_is_busy(&disp->buffer_queue)) return -EBUSY; @@ -664,10 +664,10 @@ static int disp_s_dv_timings(struct file *file, void *priv, return 0; } -static int disp_enum_output(struct file *file, void *priv, +static int bfin_disp_enum_output(struct file *file, void *priv, struct v4l2_output *output) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); struct bfin_display_config *config = disp->cfg; if (output->index >= config->num_outputs) @@ -677,17 +677,17 @@ static int disp_enum_output(struct file *file, void *priv, return 0; } -static int disp_g_output(struct file *file, void *priv, unsigned int *index) +static int bfin_disp_g_output(struct file *file, void *priv, unsigned int *index) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); *index = disp->cur_output; return 0; } -static int disp_s_output(struct file *file, void *priv, unsigned int index) +static int bfin_disp_s_output(struct file *file, void *priv, unsigned int index) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); struct bfin_display_config *config = disp->cfg; struct disp_route *route; int ret; @@ -712,12 +712,12 @@ static int disp_s_output(struct file *file, void *priv, unsigned int index) return 0; } -static int disp_try_format(struct disp_device *disp, +static int bfin_disp_try_format(struct bfin_disp_device *disp, struct v4l2_pix_format *pixfmt, - struct disp_format *disp_fmt) + struct bfin_disp_format *bfin_disp_fmt) { - struct disp_format *df = disp->enc_formats; - struct disp_format *fmt = NULL; + struct bfin_disp_format *df = disp->enc_formats; + struct bfin_disp_format *fmt = NULL; struct v4l2_mbus_framefmt mbus_fmt; int ret, i; @@ -735,24 +735,24 @@ static int disp_try_format(struct disp_device *disp, if (ret < 0) return ret; v4l2_fill_pix_format(pixfmt, &mbus_fmt); - if (disp_fmt) { + if (bfin_disp_fmt) { for (i = 0; i < disp->num_enc_formats; i++) { fmt = &df[i]; if (mbus_fmt.code == fmt->mbus_code) break; } - *disp_fmt = *fmt; + *bfin_disp_fmt = *fmt; } pixfmt->bytesperline = pixfmt->width * fmt->bpp / 8; pixfmt->sizeimage = pixfmt->bytesperline * pixfmt->height; return 0; } -static int disp_enum_fmt_vid_out(struct file *file, void *priv, +static int bfin_disp_enum_fmt_vid_out(struct file *file, void *priv, struct v4l2_fmtdesc *fmt) { - struct disp_device *disp = video_drvdata(file); - struct disp_format *df = disp->enc_formats; + struct bfin_disp_device *disp = video_drvdata(file); + struct bfin_disp_format *df = disp->enc_formats; if (fmt->index >= disp->num_enc_formats) return -EINVAL; @@ -765,30 +765,30 @@ static int disp_enum_fmt_vid_out(struct file *file, void *priv, return 0; } -static int disp_try_fmt_vid_out(struct file *file, void *priv, +static int bfin_disp_try_fmt_vid_out(struct file *file, void *priv, struct v4l2_format *fmt) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); struct v4l2_pix_format *pixfmt = &fmt->fmt.pix; - return disp_try_format(disp, pixfmt, NULL); + return bfin_disp_try_format(disp, pixfmt, NULL); } -static int disp_g_fmt_vid_out(struct file *file, void *priv, +static int bfin_disp_g_fmt_vid_out(struct file *file, void *priv, struct v4l2_format *fmt) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); fmt->fmt.pix = disp->fmt; return 0; } -static int disp_s_fmt_vid_out(struct file *file, void *priv, +static int bfin_disp_s_fmt_vid_out(struct file *file, void *priv, struct v4l2_format *fmt) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); struct v4l2_mbus_framefmt mbus_fmt; - struct disp_format disp_fmt; + struct bfin_disp_format bfin_disp_fmt; struct v4l2_pix_format *pixfmt = &fmt->fmt.pix; int ret; @@ -796,24 +796,24 @@ static int disp_s_fmt_vid_out(struct file *file, void *priv, return -EBUSY; /* see if format works */ - ret = disp_try_format(disp, pixfmt, &disp_fmt); + ret = bfin_disp_try_format(disp, pixfmt, &bfin_disp_fmt); if (ret < 0) return ret; - v4l2_fill_mbus_format(&mbus_fmt, pixfmt, disp_fmt.mbus_code); + v4l2_fill_mbus_format(&mbus_fmt, pixfmt, bfin_disp_fmt.mbus_code); ret = v4l2_subdev_call(disp->sd, video, s_mbus_fmt, &mbus_fmt); if (ret < 0) return ret; disp->fmt = *pixfmt; - disp->bpp = disp_fmt.bpp; - disp->dlen = disp_fmt.dlen; + disp->bpp = bfin_disp_fmt.bpp; + disp->dlen = bfin_disp_fmt.dlen; return 0; } -static int disp_querycap(struct file *file, void *priv, +static int bfin_disp_querycap(struct file *file, void *priv, struct v4l2_capability *cap) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); cap->capabilities = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING; strlcpy(cap->driver, DISPLAY_DRV_NAME, sizeof(cap->driver)); @@ -822,26 +822,26 @@ static int disp_querycap(struct file *file, void *priv, return 0; } -static int disp_g_parm(struct file *file, void *fh, +static int bfin_disp_g_parm(struct file *file, void *fh, struct v4l2_streamparm *a) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); return v4l2_subdev_call(disp->sd, video, g_parm, a); } -static int disp_s_parm(struct file *file, void *fh, +static int bfin_disp_s_parm(struct file *file, void *fh, struct v4l2_streamparm *a) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); return v4l2_subdev_call(disp->sd, video, s_parm, a); } -static int disp_g_chip_ident(struct file *file, void *priv, +static int bfin_disp_g_chip_ident(struct file *file, void *priv, struct v4l2_dbg_chip_ident *chip) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); chip->ident = V4L2_IDENT_NONE; chip->revision = 0; @@ -854,77 +854,77 @@ static int disp_g_chip_ident(struct file *file, void *priv, } #ifdef CONFIG_VIDEO_ADV_DEBUG -static int disp_dbg_g_register(struct file *file, void *priv, +static int bfin_disp_dbg_g_register(struct file *file, void *priv, struct v4l2_dbg_register *reg) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); return v4l2_subdev_call(disp->sd, core, g_register, reg); } -static int disp_dbg_s_register(struct file *file, void *priv, +static int bfin_disp_dbg_s_register(struct file *file, void *priv, struct v4l2_dbg_register *reg) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); return v4l2_subdev_call(disp->sd, core, s_register, reg); } #endif -static int disp_log_status(struct file *file, void *priv) +static int bfin_disp_log_status(struct file *file, void *priv) { - struct disp_device *disp = video_drvdata(file); + struct bfin_disp_device *disp = video_drvdata(file); /* status for sub devices */ v4l2_device_call_all(&disp->v4l2_dev, 0, core, log_status); return 0; } -static const struct v4l2_ioctl_ops disp_ioctl_ops = { - .vidioc_querycap = disp_querycap, - .vidioc_g_fmt_vid_out = disp_g_fmt_vid_out, - .vidioc_enum_fmt_vid_out = disp_enum_fmt_vid_out, - .vidioc_s_fmt_vid_out = disp_s_fmt_vid_out, - .vidioc_try_fmt_vid_out = disp_try_fmt_vid_out, - .vidioc_enum_output = disp_enum_output, - .vidioc_g_output = disp_g_output, - .vidioc_s_output = disp_s_output, - .vidioc_s_std = disp_s_std, - .vidioc_g_std = disp_g_std, - .vidioc_s_dv_timings = disp_s_dv_timings, - .vidioc_g_dv_timings = disp_g_dv_timings, - .vidioc_reqbufs = disp_reqbufs, - .vidioc_querybuf = disp_querybuf, - .vidioc_qbuf = disp_qbuf, - .vidioc_dqbuf = disp_dqbuf, - .vidioc_streamon = disp_streamon, - .vidioc_streamoff = disp_streamoff, - .vidioc_g_parm = disp_g_parm, - .vidioc_s_parm = disp_s_parm, - .vidioc_g_chip_ident = disp_g_chip_ident, +static const struct v4l2_ioctl_ops bfin_disp_ioctl_ops = { + .vidioc_querycap = bfin_disp_querycap, + .vidioc_g_fmt_vid_out = bfin_disp_g_fmt_vid_out, + .vidioc_enum_fmt_vid_out = bfin_disp_enum_fmt_vid_out, + .vidioc_s_fmt_vid_out = bfin_disp_s_fmt_vid_out, + .vidioc_try_fmt_vid_out = bfin_disp_try_fmt_vid_out, + .vidioc_enum_output = bfin_disp_enum_output, + .vidioc_g_output = bfin_disp_g_output, + .vidioc_s_output = bfin_disp_s_output, + .vidioc_s_std = bfin_disp_s_std, + .vidioc_g_std = bfin_disp_g_std, + .vidioc_s_dv_timings = bfin_disp_s_dv_timings, + .vidioc_g_dv_timings = bfin_disp_g_dv_timings, + .vidioc_reqbufs = bfin_disp_reqbufs, + .vidioc_querybuf = bfin_disp_querybuf, + .vidioc_qbuf = bfin_disp_qbuf, + .vidioc_dqbuf = bfin_disp_dqbuf, + .vidioc_streamon = bfin_disp_streamon, + .vidioc_streamoff = bfin_disp_streamoff, + .vidioc_g_parm = bfin_disp_g_parm, + .vidioc_s_parm = bfin_disp_s_parm, + .vidioc_g_chip_ident = bfin_disp_g_chip_ident, #ifdef CONFIG_VIDEO_ADV_DEBUG - .vidioc_g_register = disp_dbg_g_register, - .vidioc_s_register = disp_dbg_s_register, + .vidioc_g_register = bfin_disp_dbg_g_register, + .vidioc_s_register = bfin_disp_dbg_s_register, #endif - .vidioc_log_status = disp_log_status, + .vidioc_log_status = bfin_disp_log_status, }; -static struct v4l2_file_operations disp_fops = { +static struct v4l2_file_operations bfin_disp_fops = { .owner = THIS_MODULE, - .open = disp_open, - .release = disp_release, + .open = bfin_disp_open, + .release = bfin_disp_release, .unlocked_ioctl = video_ioctl2, - .mmap = disp_mmap, + .mmap = bfin_disp_mmap, #ifndef CONFIG_MMU - .get_unmapped_area = disp_get_unmapped_area, + .get_unmapped_area = bfin_disp_get_unmapped_area, #endif - .poll = disp_poll + .poll = bfin_disp_poll }; -static int disp_probe(struct platform_device *pdev) +static int bfin_disp_probe(struct platform_device *pdev) { - struct disp_device *disp; + struct bfin_disp_device *disp; struct video_device *vfd; struct i2c_adapter *i2c_adap; struct bfin_display_config *config; @@ -969,8 +969,8 @@ static int disp_probe(struct platform_device *pdev) /* initialize field of video device */ vfd->release = video_device_release; - vfd->fops = &disp_fops; - vfd->ioctl_ops = &disp_ioctl_ops; + vfd->fops = &bfin_disp_fops; + vfd->ioctl_ops = &bfin_disp_ioctl_ops; vfd->tvnorms = 0; vfd->v4l2_dev = &disp->v4l2_dev; vfd->vfl_dir = VFL_DIR_TX; @@ -1000,8 +1000,8 @@ static int disp_probe(struct platform_device *pdev) q->type = V4L2_BUF_TYPE_VIDEO_OUTPUT; q->io_modes = VB2_MMAP; q->drv_priv = disp; - q->buf_struct_size = sizeof(struct disp_buffer); - q->ops = &disp_video_qops; + q->buf_struct_size = sizeof(struct bfin_disp_buffer); + q->ops = &bfin_disp_video_qops; q->mem_ops = &vb2_dma_contig_memops; ret = vb2_queue_init(q); @@ -1098,7 +1098,7 @@ static int disp_probe(struct platform_device *pdev) } disp->dv_timings = dv_timings; } - ret = disp_init_encoder_formats(disp); + ret = bfin_disp_init_encoder_formats(disp); if (ret) { v4l2_err(&disp->v4l2_dev, "Unable to create encoder formats table\n"); @@ -1124,13 +1124,13 @@ err_free_dev: return ret; } -static int disp_remove(struct platform_device *pdev) +static int bfin_disp_remove(struct platform_device *pdev) { struct v4l2_device *v4l2_dev = platform_get_drvdata(pdev); - struct disp_device *disp = container_of(v4l2_dev, - struct disp_device, v4l2_dev); + struct bfin_disp_device *disp = container_of(v4l2_dev, + struct bfin_disp_device, v4l2_dev); - disp_free_encoder_formats(disp); + bfin_disp_free_encoder_formats(disp); video_unregister_device(disp->video_dev); v4l2_ctrl_handler_free(&disp->ctrl_handler); v4l2_device_unregister(v4l2_dev); @@ -1140,15 +1140,15 @@ static int disp_remove(struct platform_device *pdev) return 0; } -static struct platform_driver disp_driver = { +static struct platform_driver bfin_disp_driver = { .driver = { .name = DISPLAY_DRV_NAME, .owner = THIS_MODULE, }, - .probe = disp_probe, - .remove = disp_remove, + .probe = bfin_disp_probe, + .remove = bfin_disp_remove, }; -module_platform_driver(disp_driver); +module_platform_driver(bfin_disp_driver); MODULE_DESCRIPTION("Analog Devices blackfin video display driver"); MODULE_AUTHOR("Scott Jiang <[email protected]>");
_______________________________________________ Linux-kernel-commits mailing list [email protected] https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits
