isi 899 drivers/media/dvb-frontends/stv0910.c static void set_isi(struct stv *state, u32 isi) isi 901 drivers/media/dvb-frontends/stv0910.c if (isi == NO_STREAM_ID_FILTER) isi 903 drivers/media/dvb-frontends/stv0910.c if (isi == 0x80000000) { isi 909 drivers/media/dvb-frontends/stv0910.c isi & 0xff); isi 363 drivers/media/pci/ddbridge/ddbridge-sx8.c u32 ts_config = SX8_TSCONFIG_MODE_NORMAL, iq_mode = 0, isi; isi 368 drivers/media/pci/ddbridge/ddbridge-sx8.c isi = p->stream_id; isi 369 drivers/media/pci/ddbridge/ddbridge-sx8.c if (isi != NO_STREAM_ID_FILTER) isi 370 drivers/media/pci/ddbridge/ddbridge-sx8.c iq_mode = (isi & 0x30000000) >> 28; isi 136 drivers/media/platform/atmel/atmel-isi.c static void isi_writel(struct atmel_isi *isi, u32 reg, u32 val) isi 138 drivers/media/platform/atmel/atmel-isi.c writel(val, isi->regs + reg); isi 140 drivers/media/platform/atmel/atmel-isi.c static u32 isi_readl(struct atmel_isi *isi, u32 reg) isi 142 drivers/media/platform/atmel/atmel-isi.c return readl(isi->regs + reg); isi 145 drivers/media/platform/atmel/atmel-isi.c static void configure_geometry(struct atmel_isi *isi) isi 148 drivers/media/platform/atmel/atmel-isi.c u32 fourcc = isi->current_fmt->fourcc; isi 150 drivers/media/platform/atmel/atmel-isi.c isi->enable_preview_path = fourcc == V4L2_PIX_FMT_RGB565 || isi 154 drivers/media/platform/atmel/atmel-isi.c cfg2 = isi->current_fmt->swap; isi 156 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_CTRL, ISI_CTRL_DIS); isi 158 drivers/media/platform/atmel/atmel-isi.c cfg2 |= ((isi->fmt.fmt.pix.width - 1) << ISI_CFG2_IM_HSIZE_OFFSET) & isi 161 drivers/media/platform/atmel/atmel-isi.c cfg2 |= ((isi->fmt.fmt.pix.height - 1) << ISI_CFG2_IM_VSIZE_OFFSET) isi 163 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_CFG2, cfg2); isi 166 drivers/media/platform/atmel/atmel-isi.c psize = ((isi->fmt.fmt.pix.width - 1) << ISI_PSIZE_PREV_HSIZE_OFFSET) & isi 168 drivers/media/platform/atmel/atmel-isi.c psize |= ((isi->fmt.fmt.pix.height - 1) << ISI_PSIZE_PREV_VSIZE_OFFSET) & isi 170 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_PSIZE, psize); isi 171 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_PDECF, ISI_PDECF_NO_SAMPLING); isi 174 drivers/media/platform/atmel/atmel-isi.c static irqreturn_t atmel_isi_handle_streaming(struct atmel_isi *isi) isi 176 drivers/media/platform/atmel/atmel-isi.c if (isi->active) { isi 177 drivers/media/platform/atmel/atmel-isi.c struct vb2_v4l2_buffer *vbuf = &isi->active->vb; isi 178 drivers/media/platform/atmel/atmel-isi.c struct frame_buffer *buf = isi->active; isi 182 drivers/media/platform/atmel/atmel-isi.c vbuf->sequence = isi->sequence++; isi 187 drivers/media/platform/atmel/atmel-isi.c if (list_empty(&isi->video_buffer_list)) { isi 188 drivers/media/platform/atmel/atmel-isi.c isi->active = NULL; isi 191 drivers/media/platform/atmel/atmel-isi.c isi->active = list_entry(isi->video_buffer_list.next, isi 193 drivers/media/platform/atmel/atmel-isi.c if (!isi->enable_preview_path) { isi 194 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_DMA_C_DSCR, isi 195 drivers/media/platform/atmel/atmel-isi.c (u32)isi->active->p_dma_desc->fbd_phys); isi 196 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_DMA_C_CTRL, isi 198 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_DMA_CHER, ISI_DMA_CHSR_C_CH); isi 200 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_DMA_P_DSCR, isi 201 drivers/media/platform/atmel/atmel-isi.c (u32)isi->active->p_dma_desc->fbd_phys); isi 202 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_DMA_P_CTRL, isi 204 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_DMA_CHER, ISI_DMA_CHSR_P_CH); isi 213 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = dev_id; isi 217 drivers/media/platform/atmel/atmel-isi.c spin_lock(&isi->irqlock); isi 219 drivers/media/platform/atmel/atmel-isi.c status = isi_readl(isi, ISI_STATUS); isi 220 drivers/media/platform/atmel/atmel-isi.c mask = isi_readl(isi, ISI_INTMASK); isi 224 drivers/media/platform/atmel/atmel-isi.c complete(&isi->complete); isi 225 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_INTDIS, ISI_CTRL_SRST); isi 228 drivers/media/platform/atmel/atmel-isi.c complete(&isi->complete); isi 229 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_INTDIS, ISI_CTRL_DIS); isi 234 drivers/media/platform/atmel/atmel-isi.c ret = atmel_isi_handle_streaming(isi); isi 237 drivers/media/platform/atmel/atmel-isi.c spin_unlock(&isi->irqlock); isi 243 drivers/media/platform/atmel/atmel-isi.c static int atmel_isi_wait_status(struct atmel_isi *isi, int wait_reset) isi 250 drivers/media/platform/atmel/atmel-isi.c init_completion(&isi->complete); isi 253 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_INTEN, ISI_CTRL_SRST); isi 254 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_CTRL, ISI_CTRL_SRST); isi 256 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_INTEN, ISI_CTRL_DIS); isi 257 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_CTRL, ISI_CTRL_DIS); isi 260 drivers/media/platform/atmel/atmel-isi.c timeout = wait_for_completion_timeout(&isi->complete, isi 275 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = vb2_get_drv_priv(vq); isi 278 drivers/media/platform/atmel/atmel-isi.c size = isi->fmt.fmt.pix.sizeimage; isi 287 drivers/media/platform/atmel/atmel-isi.c isi->active = NULL; isi 289 drivers/media/platform/atmel/atmel-isi.c dev_dbg(isi->dev, "%s, count=%d, size=%ld\n", __func__, isi 310 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = vb2_get_drv_priv(vb->vb2_queue); isi 314 drivers/media/platform/atmel/atmel-isi.c size = isi->fmt.fmt.pix.sizeimage; isi 317 drivers/media/platform/atmel/atmel-isi.c dev_err(isi->dev, "%s data will not fit into plane (%lu < %lu)\n", isi 325 drivers/media/platform/atmel/atmel-isi.c if (list_empty(&isi->dma_desc_head)) { isi 326 drivers/media/platform/atmel/atmel-isi.c dev_err(isi->dev, "Not enough dma descriptors.\n"); isi 330 drivers/media/platform/atmel/atmel-isi.c desc = list_entry(isi->dma_desc_head.next, isi 350 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = vb2_get_drv_priv(vb->vb2_queue); isi 355 drivers/media/platform/atmel/atmel-isi.c list_add(&buf->p_dma_desc->list, &isi->dma_desc_head); isi 358 drivers/media/platform/atmel/atmel-isi.c static void start_dma(struct atmel_isi *isi, struct frame_buffer *buffer) isi 362 drivers/media/platform/atmel/atmel-isi.c cfg1 = isi_readl(isi, ISI_CFG1); isi 364 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_INTEN, isi 368 drivers/media/platform/atmel/atmel-isi.c if (!isi->enable_preview_path) { isi 369 drivers/media/platform/atmel/atmel-isi.c if (isi_readl(isi, ISI_STATUS) & ISI_CTRL_CDC) { isi 370 drivers/media/platform/atmel/atmel-isi.c dev_err(isi->dev, "Already in frame handling.\n"); isi 374 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_DMA_C_DSCR, isi 376 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_DMA_C_CTRL, isi 378 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_DMA_CHER, ISI_DMA_CHSR_C_CH); isi 380 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_DMA_P_DSCR, isi 382 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_DMA_P_CTRL, isi 384 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_DMA_CHER, ISI_DMA_CHSR_P_CH); isi 389 drivers/media/platform/atmel/atmel-isi.c cfg1 |= isi->pdata.frate | ISI_CFG1_DISCR; isi 394 drivers/media/platform/atmel/atmel-isi.c if (!isi->enable_preview_path) isi 397 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_CTRL, ctrl); isi 398 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_CFG1, cfg1); isi 404 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = vb2_get_drv_priv(vb->vb2_queue); isi 408 drivers/media/platform/atmel/atmel-isi.c spin_lock_irqsave(&isi->irqlock, flags); isi 409 drivers/media/platform/atmel/atmel-isi.c list_add_tail(&buf->list, &isi->video_buffer_list); isi 411 drivers/media/platform/atmel/atmel-isi.c if (!isi->active) { isi 412 drivers/media/platform/atmel/atmel-isi.c isi->active = buf; isi 414 drivers/media/platform/atmel/atmel-isi.c start_dma(isi, buf); isi 416 drivers/media/platform/atmel/atmel-isi.c spin_unlock_irqrestore(&isi->irqlock, flags); isi 421 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = vb2_get_drv_priv(vq); isi 425 drivers/media/platform/atmel/atmel-isi.c pm_runtime_get_sync(isi->dev); isi 428 drivers/media/platform/atmel/atmel-isi.c ret = v4l2_subdev_call(isi->entity.subdev, video, s_stream, 1); isi 430 drivers/media/platform/atmel/atmel-isi.c dev_err(isi->dev, "stream on failed in subdev\n"); isi 435 drivers/media/platform/atmel/atmel-isi.c ret = atmel_isi_wait_status(isi, WAIT_ISI_RESET); isi 437 drivers/media/platform/atmel/atmel-isi.c dev_err(isi->dev, "Reset ISI timed out\n"); isi 441 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_INTDIS, (u32)~0UL); isi 443 drivers/media/platform/atmel/atmel-isi.c isi->sequence = 0; isi 444 drivers/media/platform/atmel/atmel-isi.c configure_geometry(isi); isi 446 drivers/media/platform/atmel/atmel-isi.c spin_lock_irq(&isi->irqlock); isi 448 drivers/media/platform/atmel/atmel-isi.c isi_readl(isi, ISI_STATUS); isi 450 drivers/media/platform/atmel/atmel-isi.c start_dma(isi, isi->active); isi 451 drivers/media/platform/atmel/atmel-isi.c spin_unlock_irq(&isi->irqlock); isi 456 drivers/media/platform/atmel/atmel-isi.c v4l2_subdev_call(isi->entity.subdev, video, s_stream, 0); isi 459 drivers/media/platform/atmel/atmel-isi.c pm_runtime_put(isi->dev); isi 461 drivers/media/platform/atmel/atmel-isi.c spin_lock_irq(&isi->irqlock); isi 462 drivers/media/platform/atmel/atmel-isi.c isi->active = NULL; isi 464 drivers/media/platform/atmel/atmel-isi.c list_for_each_entry_safe(buf, node, &isi->video_buffer_list, list) { isi 468 drivers/media/platform/atmel/atmel-isi.c spin_unlock_irq(&isi->irqlock); isi 476 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = vb2_get_drv_priv(vq); isi 482 drivers/media/platform/atmel/atmel-isi.c ret = v4l2_subdev_call(isi->entity.subdev, video, s_stream, 0); isi 484 drivers/media/platform/atmel/atmel-isi.c dev_err(isi->dev, "stream off failed in subdev\n"); isi 486 drivers/media/platform/atmel/atmel-isi.c spin_lock_irq(&isi->irqlock); isi 487 drivers/media/platform/atmel/atmel-isi.c isi->active = NULL; isi 489 drivers/media/platform/atmel/atmel-isi.c list_for_each_entry_safe(buf, node, &isi->video_buffer_list, list) { isi 493 drivers/media/platform/atmel/atmel-isi.c spin_unlock_irq(&isi->irqlock); isi 495 drivers/media/platform/atmel/atmel-isi.c if (!isi->enable_preview_path) { isi 498 drivers/media/platform/atmel/atmel-isi.c while ((isi_readl(isi, ISI_STATUS) & ISI_CTRL_CDC) && isi 503 drivers/media/platform/atmel/atmel-isi.c dev_err(isi->dev, isi 508 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_INTDIS, isi 512 drivers/media/platform/atmel/atmel-isi.c ret = atmel_isi_wait_status(isi, WAIT_ISI_DISABLE); isi 514 drivers/media/platform/atmel/atmel-isi.c dev_err(isi->dev, "Disable ISI timed out\n"); isi 516 drivers/media/platform/atmel/atmel-isi.c pm_runtime_put(isi->dev); isi 534 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = video_drvdata(file); isi 536 drivers/media/platform/atmel/atmel-isi.c *fmt = isi->fmt; isi 541 drivers/media/platform/atmel/atmel-isi.c static const struct isi_format *find_format_by_fourcc(struct atmel_isi *isi, isi 544 drivers/media/platform/atmel/atmel-isi.c unsigned int num_formats = isi->num_user_formats; isi 549 drivers/media/platform/atmel/atmel-isi.c fmt = isi->user_formats[i]; isi 557 drivers/media/platform/atmel/atmel-isi.c static int isi_try_fmt(struct atmel_isi *isi, struct v4l2_format *f, isi 568 drivers/media/platform/atmel/atmel-isi.c isi_fmt = find_format_by_fourcc(isi, pixfmt->pixelformat); isi 570 drivers/media/platform/atmel/atmel-isi.c isi_fmt = isi->user_formats[isi->num_user_formats - 1]; isi 579 drivers/media/platform/atmel/atmel-isi.c ret = v4l2_subdev_call(isi->entity.subdev, pad, set_fmt, isi 596 drivers/media/platform/atmel/atmel-isi.c static int isi_set_fmt(struct atmel_isi *isi, struct v4l2_format *f) isi 604 drivers/media/platform/atmel/atmel-isi.c ret = isi_try_fmt(isi, f, ¤t_fmt); isi 610 drivers/media/platform/atmel/atmel-isi.c ret = v4l2_subdev_call(isi->entity.subdev, pad, isi 615 drivers/media/platform/atmel/atmel-isi.c isi->fmt = *f; isi 616 drivers/media/platform/atmel/atmel-isi.c isi->current_fmt = current_fmt; isi 624 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = video_drvdata(file); isi 626 drivers/media/platform/atmel/atmel-isi.c if (vb2_is_streaming(&isi->queue)) isi 629 drivers/media/platform/atmel/atmel-isi.c return isi_set_fmt(isi, f); isi 635 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = video_drvdata(file); isi 637 drivers/media/platform/atmel/atmel-isi.c return isi_try_fmt(isi, f, NULL); isi 643 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = video_drvdata(file); isi 645 drivers/media/platform/atmel/atmel-isi.c if (f->index >= isi->num_user_formats) isi 648 drivers/media/platform/atmel/atmel-isi.c f->pixelformat = isi->user_formats[f->index]->fourcc; isi 687 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = video_drvdata(file); isi 689 drivers/media/platform/atmel/atmel-isi.c return v4l2_g_parm_cap(video_devdata(file), isi->entity.subdev, a); isi 694 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = video_drvdata(file); isi 696 drivers/media/platform/atmel/atmel-isi.c return v4l2_s_parm_cap(video_devdata(file), isi->entity.subdev, a); isi 702 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = video_drvdata(file); isi 710 drivers/media/platform/atmel/atmel-isi.c isi_fmt = find_format_by_fourcc(isi, fsize->pixel_format); isi 716 drivers/media/platform/atmel/atmel-isi.c ret = v4l2_subdev_call(isi->entity.subdev, pad, enum_frame_size, isi 731 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = video_drvdata(file); isi 741 drivers/media/platform/atmel/atmel-isi.c isi_fmt = find_format_by_fourcc(isi, fival->pixel_format); isi 747 drivers/media/platform/atmel/atmel-isi.c ret = v4l2_subdev_call(isi->entity.subdev, pad, isi 758 drivers/media/platform/atmel/atmel-isi.c static void isi_camera_set_bus_param(struct atmel_isi *isi) isi 763 drivers/media/platform/atmel/atmel-isi.c if (isi->pdata.hsync_act_low) isi 765 drivers/media/platform/atmel/atmel-isi.c if (isi->pdata.vsync_act_low) isi 767 drivers/media/platform/atmel/atmel-isi.c if (isi->pdata.pclk_act_falling) isi 769 drivers/media/platform/atmel/atmel-isi.c if (isi->pdata.has_emb_sync) isi 771 drivers/media/platform/atmel/atmel-isi.c if (isi->pdata.full_mode) isi 777 drivers/media/platform/atmel/atmel-isi.c pm_runtime_get_sync(isi->dev); isi 779 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_CTRL, ISI_CTRL_DIS); isi 780 drivers/media/platform/atmel/atmel-isi.c isi_writel(isi, ISI_CFG1, cfg1); isi 782 drivers/media/platform/atmel/atmel-isi.c pm_runtime_put(isi->dev); isi 786 drivers/media/platform/atmel/atmel-isi.c static int atmel_isi_parse_dt(struct atmel_isi *isi, isi 794 drivers/media/platform/atmel/atmel-isi.c isi->pdata.full_mode = 1; isi 795 drivers/media/platform/atmel/atmel-isi.c isi->pdata.frate = ISI_CFG1_FRATE_CAPTURE_ALL; isi 812 drivers/media/platform/atmel/atmel-isi.c isi->pdata.data_width_flags = ISI_DATAWIDTH_8; isi 815 drivers/media/platform/atmel/atmel-isi.c isi->pdata.data_width_flags = isi 825 drivers/media/platform/atmel/atmel-isi.c isi->pdata.hsync_act_low = true; isi 827 drivers/media/platform/atmel/atmel-isi.c isi->pdata.vsync_act_low = true; isi 829 drivers/media/platform/atmel/atmel-isi.c isi->pdata.pclk_act_falling = true; isi 832 drivers/media/platform/atmel/atmel-isi.c isi->pdata.has_emb_sync = true; isi 839 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = video_drvdata(file); isi 840 drivers/media/platform/atmel/atmel-isi.c struct v4l2_subdev *sd = isi->entity.subdev; isi 843 drivers/media/platform/atmel/atmel-isi.c if (mutex_lock_interruptible(&isi->lock)) isi 857 drivers/media/platform/atmel/atmel-isi.c ret = isi_set_fmt(isi, &isi->fmt); isi 864 drivers/media/platform/atmel/atmel-isi.c mutex_unlock(&isi->lock); isi 870 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = video_drvdata(file); isi 871 drivers/media/platform/atmel/atmel-isi.c struct v4l2_subdev *sd = isi->entity.subdev; isi 875 drivers/media/platform/atmel/atmel-isi.c mutex_lock(&isi->lock); isi 884 drivers/media/platform/atmel/atmel-isi.c mutex_unlock(&isi->lock); isi 931 drivers/media/platform/atmel/atmel-isi.c static int isi_set_default_fmt(struct atmel_isi *isi) isi 939 drivers/media/platform/atmel/atmel-isi.c .pixelformat = isi->user_formats[0]->fourcc, isi 944 drivers/media/platform/atmel/atmel-isi.c ret = isi_try_fmt(isi, &f, NULL); isi 947 drivers/media/platform/atmel/atmel-isi.c isi->current_fmt = isi->user_formats[0]; isi 948 drivers/media/platform/atmel/atmel-isi.c isi->fmt = f; isi 996 drivers/media/platform/atmel/atmel-isi.c static int isi_formats_init(struct atmel_isi *isi) isi 1000 drivers/media/platform/atmel/atmel-isi.c struct v4l2_subdev *subdev = isi->entity.subdev; isi 1026 drivers/media/platform/atmel/atmel-isi.c isi->num_user_formats = num_fmts; isi 1027 drivers/media/platform/atmel/atmel-isi.c isi->user_formats = devm_kcalloc(isi->dev, isi 1030 drivers/media/platform/atmel/atmel-isi.c if (!isi->user_formats) isi 1033 drivers/media/platform/atmel/atmel-isi.c memcpy(isi->user_formats, isi_fmts, isi 1035 drivers/media/platform/atmel/atmel-isi.c isi->current_fmt = isi->user_formats[0]; isi 1042 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = notifier_to_isi(notifier); isi 1045 drivers/media/platform/atmel/atmel-isi.c isi->vdev->ctrl_handler = isi->entity.subdev->ctrl_handler; isi 1046 drivers/media/platform/atmel/atmel-isi.c ret = isi_formats_init(isi); isi 1048 drivers/media/platform/atmel/atmel-isi.c dev_err(isi->dev, "No supported mediabus format found\n"); isi 1051 drivers/media/platform/atmel/atmel-isi.c isi_camera_set_bus_param(isi); isi 1053 drivers/media/platform/atmel/atmel-isi.c ret = isi_set_default_fmt(isi); isi 1055 drivers/media/platform/atmel/atmel-isi.c dev_err(isi->dev, "Could not set default format\n"); isi 1059 drivers/media/platform/atmel/atmel-isi.c ret = video_register_device(isi->vdev, VFL_TYPE_GRABBER, -1); isi 1061 drivers/media/platform/atmel/atmel-isi.c dev_err(isi->dev, "Failed to register video device\n"); isi 1065 drivers/media/platform/atmel/atmel-isi.c dev_dbg(isi->dev, "Device registered as %s\n", isi 1066 drivers/media/platform/atmel/atmel-isi.c video_device_node_name(isi->vdev)); isi 1074 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = notifier_to_isi(notifier); isi 1076 drivers/media/platform/atmel/atmel-isi.c dev_dbg(isi->dev, "Removing %s\n", video_device_node_name(isi->vdev)); isi 1079 drivers/media/platform/atmel/atmel-isi.c video_unregister_device(isi->vdev); isi 1086 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = notifier_to_isi(notifier); isi 1088 drivers/media/platform/atmel/atmel-isi.c dev_dbg(isi->dev, "subdev %s bound\n", subdev->name); isi 1090 drivers/media/platform/atmel/atmel-isi.c isi->entity.subdev = subdev; isi 1101 drivers/media/platform/atmel/atmel-isi.c static int isi_graph_parse(struct atmel_isi *isi, struct device_node *node) isi 1116 drivers/media/platform/atmel/atmel-isi.c isi->entity.node = remote; isi 1117 drivers/media/platform/atmel/atmel-isi.c isi->entity.asd.match_type = V4L2_ASYNC_MATCH_FWNODE; isi 1118 drivers/media/platform/atmel/atmel-isi.c isi->entity.asd.match.fwnode = of_fwnode_handle(remote); isi 1122 drivers/media/platform/atmel/atmel-isi.c static int isi_graph_init(struct atmel_isi *isi) isi 1127 drivers/media/platform/atmel/atmel-isi.c ret = isi_graph_parse(isi, isi->dev->of_node); isi 1129 drivers/media/platform/atmel/atmel-isi.c dev_err(isi->dev, "Graph parsing failed\n"); isi 1133 drivers/media/platform/atmel/atmel-isi.c v4l2_async_notifier_init(&isi->notifier); isi 1135 drivers/media/platform/atmel/atmel-isi.c ret = v4l2_async_notifier_add_subdev(&isi->notifier, &isi->entity.asd); isi 1137 drivers/media/platform/atmel/atmel-isi.c of_node_put(isi->entity.node); isi 1141 drivers/media/platform/atmel/atmel-isi.c isi->notifier.ops = &isi_graph_notify_ops; isi 1143 drivers/media/platform/atmel/atmel-isi.c ret = v4l2_async_notifier_register(&isi->v4l2_dev, &isi->notifier); isi 1145 drivers/media/platform/atmel/atmel-isi.c dev_err(isi->dev, "Notifier registration failed\n"); isi 1146 drivers/media/platform/atmel/atmel-isi.c v4l2_async_notifier_cleanup(&isi->notifier); isi 1157 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi; isi 1162 drivers/media/platform/atmel/atmel-isi.c isi = devm_kzalloc(&pdev->dev, sizeof(struct atmel_isi), GFP_KERNEL); isi 1163 drivers/media/platform/atmel/atmel-isi.c if (!isi) isi 1166 drivers/media/platform/atmel/atmel-isi.c isi->pclk = devm_clk_get(&pdev->dev, "isi_clk"); isi 1167 drivers/media/platform/atmel/atmel-isi.c if (IS_ERR(isi->pclk)) isi 1168 drivers/media/platform/atmel/atmel-isi.c return PTR_ERR(isi->pclk); isi 1170 drivers/media/platform/atmel/atmel-isi.c ret = atmel_isi_parse_dt(isi, pdev); isi 1174 drivers/media/platform/atmel/atmel-isi.c isi->active = NULL; isi 1175 drivers/media/platform/atmel/atmel-isi.c isi->dev = &pdev->dev; isi 1176 drivers/media/platform/atmel/atmel-isi.c mutex_init(&isi->lock); isi 1177 drivers/media/platform/atmel/atmel-isi.c spin_lock_init(&isi->irqlock); isi 1178 drivers/media/platform/atmel/atmel-isi.c INIT_LIST_HEAD(&isi->video_buffer_list); isi 1179 drivers/media/platform/atmel/atmel-isi.c INIT_LIST_HEAD(&isi->dma_desc_head); isi 1181 drivers/media/platform/atmel/atmel-isi.c q = &isi->queue; isi 1184 drivers/media/platform/atmel/atmel-isi.c ret = v4l2_device_register(&pdev->dev, &isi->v4l2_dev); isi 1188 drivers/media/platform/atmel/atmel-isi.c isi->vdev = video_device_alloc(); isi 1189 drivers/media/platform/atmel/atmel-isi.c if (!isi->vdev) { isi 1195 drivers/media/platform/atmel/atmel-isi.c isi->vdev->fops = &isi_fops; isi 1196 drivers/media/platform/atmel/atmel-isi.c isi->vdev->v4l2_dev = &isi->v4l2_dev; isi 1197 drivers/media/platform/atmel/atmel-isi.c isi->vdev->queue = &isi->queue; isi 1198 drivers/media/platform/atmel/atmel-isi.c strscpy(isi->vdev->name, KBUILD_MODNAME, sizeof(isi->vdev->name)); isi 1199 drivers/media/platform/atmel/atmel-isi.c isi->vdev->release = video_device_release; isi 1200 drivers/media/platform/atmel/atmel-isi.c isi->vdev->ioctl_ops = &isi_ioctl_ops; isi 1201 drivers/media/platform/atmel/atmel-isi.c isi->vdev->lock = &isi->lock; isi 1202 drivers/media/platform/atmel/atmel-isi.c isi->vdev->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING | isi 1204 drivers/media/platform/atmel/atmel-isi.c video_set_drvdata(isi->vdev, isi); isi 1209 drivers/media/platform/atmel/atmel-isi.c q->lock = &isi->lock; isi 1210 drivers/media/platform/atmel/atmel-isi.c q->drv_priv = isi; isi 1223 drivers/media/platform/atmel/atmel-isi.c isi->p_fb_descriptors = dma_alloc_coherent(&pdev->dev, isi 1225 drivers/media/platform/atmel/atmel-isi.c &isi->fb_descriptors_phys, isi 1227 drivers/media/platform/atmel/atmel-isi.c if (!isi->p_fb_descriptors) { isi 1234 drivers/media/platform/atmel/atmel-isi.c isi->dma_desc[i].p_fbd = isi->p_fb_descriptors + i; isi 1235 drivers/media/platform/atmel/atmel-isi.c isi->dma_desc[i].fbd_phys = isi->fb_descriptors_phys + isi 1237 drivers/media/platform/atmel/atmel-isi.c list_add(&isi->dma_desc[i].list, &isi->dma_desc_head); isi 1241 drivers/media/platform/atmel/atmel-isi.c isi->regs = devm_ioremap_resource(&pdev->dev, regs); isi 1242 drivers/media/platform/atmel/atmel-isi.c if (IS_ERR(isi->regs)) { isi 1243 drivers/media/platform/atmel/atmel-isi.c ret = PTR_ERR(isi->regs); isi 1247 drivers/media/platform/atmel/atmel-isi.c if (isi->pdata.data_width_flags & ISI_DATAWIDTH_8) isi 1248 drivers/media/platform/atmel/atmel-isi.c isi->width_flags = 1 << 7; isi 1249 drivers/media/platform/atmel/atmel-isi.c if (isi->pdata.data_width_flags & ISI_DATAWIDTH_10) isi 1250 drivers/media/platform/atmel/atmel-isi.c isi->width_flags |= 1 << 9; isi 1258 drivers/media/platform/atmel/atmel-isi.c ret = devm_request_irq(&pdev->dev, irq, isi_interrupt, 0, "isi", isi); isi 1263 drivers/media/platform/atmel/atmel-isi.c isi->irq = irq; isi 1265 drivers/media/platform/atmel/atmel-isi.c ret = isi_graph_init(isi); isi 1271 drivers/media/platform/atmel/atmel-isi.c platform_set_drvdata(pdev, isi); isi 1278 drivers/media/platform/atmel/atmel-isi.c isi->p_fb_descriptors, isi 1279 drivers/media/platform/atmel/atmel-isi.c isi->fb_descriptors_phys); isi 1282 drivers/media/platform/atmel/atmel-isi.c video_device_release(isi->vdev); isi 1284 drivers/media/platform/atmel/atmel-isi.c v4l2_device_unregister(&isi->v4l2_dev); isi 1291 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = platform_get_drvdata(pdev); isi 1295 drivers/media/platform/atmel/atmel-isi.c isi->p_fb_descriptors, isi 1296 drivers/media/platform/atmel/atmel-isi.c isi->fb_descriptors_phys); isi 1298 drivers/media/platform/atmel/atmel-isi.c v4l2_async_notifier_unregister(&isi->notifier); isi 1299 drivers/media/platform/atmel/atmel-isi.c v4l2_async_notifier_cleanup(&isi->notifier); isi 1300 drivers/media/platform/atmel/atmel-isi.c v4l2_device_unregister(&isi->v4l2_dev); isi 1308 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = dev_get_drvdata(dev); isi 1310 drivers/media/platform/atmel/atmel-isi.c clk_disable_unprepare(isi->pclk); isi 1316 drivers/media/platform/atmel/atmel-isi.c struct atmel_isi *isi = dev_get_drvdata(dev); isi 1318 drivers/media/platform/atmel/atmel-isi.c return clk_prepare_enable(isi->pclk); isi 390 drivers/parisc/iosapic.c irt_find_irqline(struct iosapic_info *isi, u8 slot, u8 intr_pin) isi 422 drivers/parisc/iosapic.c if (!COMPARE_IRTE_ADDR(i, isi->isi_hpa)) isi 440 drivers/parisc/iosapic.c isi->isi_hpa, slot, intr_pin); isi 460 drivers/parisc/iosapic.c iosapic_xlate_pin(struct iosapic_info *isi, struct pci_dev *pcidev) isi 523 drivers/parisc/iosapic.c return irt_find_irqline(isi, intr_slot, intr_pin); isi 708 drivers/parisc/iosapic.c struct iosapic_info *isi = isi_obj; isi 713 drivers/parisc/iosapic.c if (!isi) { isi 739 drivers/parisc/iosapic.c irte = iosapic_xlate_pin(isi, pcidev); isi 758 drivers/parisc/iosapic.c vi = isi->isi_vector + isi_line; isi 785 drivers/parisc/iosapic.c vi->eoi_addr = isi->addr + IOSAPIC_REG_EOI; isi 805 drivers/parisc/iosapic.c struct iosapic_info *isi; isi 835 drivers/parisc/iosapic.c for (isi = iosapic_list; isi; isi = isi->isi_next) isi 836 drivers/parisc/iosapic.c if (isi->isi_hpa == dev->mod0) isi 838 drivers/parisc/iosapic.c if (!isi) isi 842 drivers/parisc/iosapic.c vi = isi->isi_vector + intin; isi 869 drivers/parisc/iosapic.c vi->eoi_addr = isi->addr + IOSAPIC_REG_EOI; isi 885 drivers/parisc/iosapic.c iosapic_rd_version(struct iosapic_info *isi) isi 887 drivers/parisc/iosapic.c return iosapic_read(isi->addr, IOSAPIC_REG_VERSION); isi 903 drivers/parisc/iosapic.c struct iosapic_info *isi = NULL; isi 924 drivers/parisc/iosapic.c isi = kzalloc(sizeof(struct iosapic_info), GFP_KERNEL); isi 925 drivers/parisc/iosapic.c if (!isi) { isi 930 drivers/parisc/iosapic.c isi->addr = ioremap_nocache(hpa, 4096); isi 931 drivers/parisc/iosapic.c isi->isi_hpa = hpa; isi 932 drivers/parisc/iosapic.c isi->isi_version = iosapic_rd_version(isi); isi 933 drivers/parisc/iosapic.c isi->isi_num_vectors = IOSAPIC_IRDT_MAX_ENTRY(isi->isi_version) + 1; isi 935 drivers/parisc/iosapic.c vip = isi->isi_vector = kcalloc(isi->isi_num_vectors, isi 938 drivers/parisc/iosapic.c kfree(isi); isi 942 drivers/parisc/iosapic.c for (cnt=0; cnt < isi->isi_num_vectors; cnt++, vip++) { isi 944 drivers/parisc/iosapic.c vip->iosapic = isi; isi 946 drivers/parisc/iosapic.c isi->isi_next = iosapic_list; isi 947 drivers/parisc/iosapic.c iosapic_list = isi; isi 948 drivers/parisc/iosapic.c return isi; isi 983 drivers/parisc/iosapic.c iosapic_prt_isi(struct iosapic_info *isi) isi 985 drivers/parisc/iosapic.c printk(KERN_DEBUG MODULE_NAME ": io_sapic_info at %p\n", isi); isi 986 drivers/parisc/iosapic.c printk(KERN_DEBUG "\t\tisi_hpa: %lx\n", isi->isi_hpa); isi 987 drivers/parisc/iosapic.c printk(KERN_DEBUG "\t\tisi_status: %x\n", isi->isi_status); isi 988 drivers/parisc/iosapic.c printk(KERN_DEBUG "\t\tisi_version: %x\n", isi->isi_version); isi 989 drivers/parisc/iosapic.c printk(KERN_DEBUG "\t\tisi_vector: %p\n", isi->isi_vector); isi 29 fs/iomap/swapfile.c static int iomap_swapfile_add_extent(struct iomap_swapfile_info *isi) isi 31 fs/iomap/swapfile.c struct iomap *iomap = &isi->iomap; isi 59 fs/iomap/swapfile.c if (isi->lowest_ppage > first_ppage_reported) isi 60 fs/iomap/swapfile.c isi->lowest_ppage = first_ppage_reported; isi 61 fs/iomap/swapfile.c if (isi->highest_ppage < (next_ppage - 1)) isi 62 fs/iomap/swapfile.c isi->highest_ppage = next_ppage - 1; isi 65 fs/iomap/swapfile.c error = add_swap_extent(isi->sis, isi->nr_pages, nr_pages, first_ppage); isi 68 fs/iomap/swapfile.c isi->nr_extents += error; isi 69 fs/iomap/swapfile.c isi->nr_pages += nr_pages; isi 81 fs/iomap/swapfile.c struct iomap_swapfile_info *isi = data; isi 109 fs/iomap/swapfile.c if (iomap->bdev != isi->sis->bdev) { isi 114 fs/iomap/swapfile.c if (isi->iomap.length == 0) { isi 116 fs/iomap/swapfile.c memcpy(&isi->iomap, iomap, sizeof(isi->iomap)); isi 117 fs/iomap/swapfile.c } else if (isi->iomap.addr + isi->iomap.length == iomap->addr) { isi 119 fs/iomap/swapfile.c isi->iomap.length += iomap->length; isi 122 fs/iomap/swapfile.c error = iomap_swapfile_add_extent(isi); isi 125 fs/iomap/swapfile.c memcpy(&isi->iomap, iomap, sizeof(isi->iomap)); isi 138 fs/iomap/swapfile.c struct iomap_swapfile_info isi = { isi 158 fs/iomap/swapfile.c ops, &isi, iomap_swapfile_activate_actor); isi 166 fs/iomap/swapfile.c if (isi.iomap.length) { isi 167 fs/iomap/swapfile.c ret = iomap_swapfile_add_extent(&isi); isi 172 fs/iomap/swapfile.c *pagespan = 1 + isi.highest_ppage - isi.lowest_ppage; isi 173 fs/iomap/swapfile.c sis->max = isi.nr_pages; isi 174 fs/iomap/swapfile.c sis->pages = isi.nr_pages - 1; isi 175 fs/iomap/swapfile.c sis->highest_bit = isi.nr_pages - 1; isi 176 fs/iomap/swapfile.c return isi.nr_extents;