/linux/drivers/media/platform/atmel/ |
H A D | atmel-isi.c | 35 #include "atmel-isi.h" 77 * struct isi_format - ISI media bus format information 109 /* ISI peripheral clock */ 135 static void isi_writel(struct atmel_isi *isi, u32 reg, u32 val) in isi_writel() argument 137 writel(val, isi->regs + reg); in isi_writel() 139 static u32 isi_readl(struct atmel_isi *isi, u32 reg) in isi_readl() argument 141 return readl(isi->regs + reg); in isi_readl() 144 static void configure_geometry(struct atmel_isi *isi) in configure_geometry() argument 147 u32 fourcc = isi->current_fmt->fourcc; in configure_geometry() 149 isi->enable_preview_path = fourcc == V4L2_PIX_FMT_RGB565 || in configure_geometry() [all …]
|
/linux/drivers/media/platform/nxp/imx8-isi/ |
H A D | imx8-isi-core.c | 26 #include "imx8-isi-core.h" 55 struct mxc_isi_dev *isi = notifier_to_mxc_isi_dev(notifier); in mxc_isi_async_notifier_bound() local 57 struct media_pad *pad = &isi->crossbar.pads[masd->port]; in mxc_isi_async_notifier_bound() 60 dev_dbg(isi->dev, "Bound subdev %s to crossbar input %u\n", sd->name, in mxc_isi_async_notifier_bound() 65 * the ISI (consumer). The source will be suspended before and resume in mxc_isi_async_notifier_bound() 66 * after the ISI. in mxc_isi_async_notifier_bound() 68 link = device_link_add(isi->dev, sd->dev, DL_FLAG_STATELESS); in mxc_isi_async_notifier_bound() 70 dev_err(isi->dev, in mxc_isi_async_notifier_bound() 80 struct mxc_isi_dev *isi = notifier_to_mxc_isi_dev(notifier); in mxc_isi_async_notifier_complete() local 83 dev_dbg(isi->dev, "All subdevs bound\n"); in mxc_isi_async_notifier_complete() [all …]
|
H A D | Makefile | 3 imx8-isi-y := imx8-isi-core.o imx8-isi-crossbar.o imx8-isi-gasket.o \ 4 imx8-isi-hw.o imx8-isi-pipe.o imx8-isi-video.o 5 imx8-isi-$(CONFIG_DEBUG_FS) += imx8-isi-debug.o 6 imx8-isi-$(CONFIG_VIDEO_IMX8_ISI_M2M) += imx8-isi-m2m.o 8 obj-$(CONFIG_VIDEO_IMX8_ISI) += imx8-isi.o
|
H A D | imx8-isi-debug.c | 14 #include "imx8-isi-core.h" 15 #include "imx8-isi-regs.h" 85 if (!pm_runtime_get_if_in_use(pipe->isi->dev)) in mxc_isi_debug_dump_regs_show() 88 seq_printf(m, "--- ISI pipe %u registers ---\n", pipe->id); in mxc_isi_debug_dump_regs_show() 95 if (pipe->isi->pdata->has_36bit_dma) { in mxc_isi_debug_dump_regs_show() 105 pm_runtime_put(pipe->isi->dev); in mxc_isi_debug_dump_regs_show() 111 void mxc_isi_debug_init(struct mxc_isi_dev *isi) in mxc_isi_debug_init() argument 115 isi->debugfs_root = debugfs_create_dir(dev_name(isi->dev), NULL); in mxc_isi_debug_init() 117 for (i = 0; i < isi->pdata->num_channels; ++i) { in mxc_isi_debug_init() 118 struct mxc_isi_pipe *pipe = &isi->pipes[i]; in mxc_isi_debug_init() [all …]
|
H A D | imx8-isi-core.h | 3 * V4L2 Capture ISI subdev for i.MX8QXP/QM platform 5 * ISI is a Image Sensor Interface of i.MX8QXP/QM platform, which 57 #define MXC_ISI_DRIVER_NAME "mxc-isi" 58 #define MXC_ISI_CAPTURE "mxc-isi-cap" 59 #define MXC_ISI_M2M "mxc-isi-m2m" 151 void (*enable)(struct mxc_isi_dev *isi, 155 void (*disable)(struct mxc_isi_dev *isi, const unsigned int port); 189 struct mxc_isi_dev *isi; member 234 struct mxc_isi_dev *isi; member 262 struct mxc_isi_dev *isi; member [all …]
|
H A D | imx8-isi-gasket.c | 10 #include "imx8-isi-core.h" 27 static void mxc_imx8_gasket_enable(struct mxc_isi_dev *isi, in mxc_imx8_gasket_enable() argument 34 regmap_write(isi->gasket, GASKET_BASE(port) + GASKET_HSIZE, fmt->width); in mxc_imx8_gasket_enable() 35 regmap_write(isi->gasket, GASKET_BASE(port) + GASKET_VSIZE, fmt->height); in mxc_imx8_gasket_enable() 42 regmap_write(isi->gasket, GASKET_BASE(port) + GASKET_CTRL, val); in mxc_imx8_gasket_enable() 45 static void mxc_imx8_gasket_disable(struct mxc_isi_dev *isi, in mxc_imx8_gasket_disable() argument 48 regmap_write(isi->gasket, GASKET_BASE(port) + GASKET_CTRL, 0); in mxc_imx8_gasket_disable() 64 static void mxc_imx93_gasket_enable(struct mxc_isi_dev *isi, in mxc_imx93_gasket_enable() argument 73 regmap_write(isi->gasket, DISP_MIX_CAMERA_MUX, val); in mxc_imx93_gasket_enable() 76 static void mxc_imx93_gasket_disable(struct mxc_isi_dev *isi, in mxc_imx93_gasket_disable() argument [all …]
|
H A D | imx8-isi-crossbar.c | 3 * i.MX8 ISI - Input crossbar switch 20 #include "imx8-isi-core.h" 32 struct mxc_isi_dev *isi = xbar->isi; in mxc_isi_crossbar_gasket_enable() local 33 const struct mxc_gasket_ops *gasket_ops = isi->pdata->gasket_ops; in mxc_isi_crossbar_gasket_enable() 49 dev_err(isi->dev, in mxc_isi_crossbar_gasket_enable() 56 dev_err(isi->dev, "invalid frame descriptor for '%s':%u\n", in mxc_isi_crossbar_gasket_enable() 65 gasket_ops->enable(isi, &fd, fmt, port); in mxc_isi_crossbar_gasket_enable() 72 struct mxc_isi_dev *isi = xbar->isi; in mxc_isi_crossbar_gasket_disable() local 73 const struct mxc_gasket_ops *gasket_ops = isi->pdata->gasket_ops; in mxc_isi_crossbar_gasket_disable() 78 gasket_ops->disable(isi, port); in mxc_isi_crossbar_gasket_disable() [all …]
|
H A D | imx8-isi-pipe.c | 3 * V4L2 Capture ISI subdev driver for i.MX8QXP/QM platform 5 * ISI is a Image Sensor Interface of i.MX8QXP/QM platform, which 26 #include "imx8-isi-core.h" 27 #include "imx8-isi-regs.h" 30 * While the ISI receives data from the gasket on a 3x12-bit bus, the pipeline 32 * subdev between the CSIS and the ISI. We thus need to expose media bus codes 237 struct mxc_isi_crossbar *xbar = &pipe->isi->crossbar; in mxc_isi_pipe_enable() 283 /* Configure the ISI channel. */ in mxc_isi_pipe_enable() 294 dev_err(pipe->isi->dev, "Failed to enable pipe %u\n", in mxc_isi_pipe_enable() 304 struct mxc_isi_crossbar *xbar = &pipe->isi->crossbar; in mxc_isi_pipe_disable() [all …]
|
H A D | Kconfig | 4 tristate "i.MX8 Image Sensor Interface (ISI) driver" 14 V4L2 driver for the Image Sensor Interface (ISI) found in various 18 bool "i.MX8 Image Sensor Interface (ISI) memory-to-memory support" 22 in the ISI driver.
|
H A D | imx8-isi-m2m.c | 3 * ISI V4L2 memory to memory driver for i.MX8QXP/QM platform 5 * ISI is a Image Sensor Interface of i.MX8QXP/QM platform, which 35 #include "imx8-isi-core.h" 96 struct mxc_isi_m2m *m2m = &pipe->isi->m2m; in mxc_isi_m2m_frame_write_done() 102 dev_err(m2m->isi->dev, in mxc_isi_m2m_frame_write_done() 226 return mxc_isi_video_buffer_prepare(ctx->m2m->isi, vb2, qdata->info, in mxc_isi_m2m_vb2_buffer_prepare() 293 src_vq->dev = m2m->isi->dev; in mxc_isi_m2m_queue_init() 307 dst_vq->dev = m2m->isi->dev; in mxc_isi_m2m_queue_init() 678 ret = pm_runtime_resume_and_get(m2m->isi->dev); in mxc_isi_m2m_open() 711 pm_runtime_put(m2m->isi->dev); in mxc_isi_m2m_release() [all …]
|
H A D | imx8-isi-video.c | 3 * V4L2 Capture ISI subdev driver for i.MX8QXP/QM platform 5 * ISI is a Image Sensor Interface of i.MX8QXP/QM platform, which 33 #include "imx8-isi-core.h" 34 #include "imx8-isi-regs.h" 173 * The ISI shifts the 10-bit and 12-bit formats left by 6 and 4 bits 416 max_width = pipe->id == pipe->isi->pdata->num_channels - 1 in mxc_isi_format_try() 495 struct device *dev = pipe->isi->dev; in mxc_isi_video_frame_write_done() 503 * The ISI hardware handles buffers using a ping-pong mechanism with in mxc_isi_video_frame_write_done() 519 * | Start ISI | in mxc_isi_video_frame_write_done() 556 buf_id = pipe->isi->pdata->buf_active_reverse in mxc_isi_video_frame_write_done() [all …]
|
H A D | imx8-isi-hw.c | 11 #include "imx8-isi-core.h" 12 #include "imx8-isi-regs.h" 33 if (pipe->isi->pdata->has_36bit_dma) in mxc_isi_channel_set_inbuf() 53 if (pipe->isi->pdata->has_36bit_dma) { in mxc_isi_channel_set_outbuf() 69 if (pipe->isi->pdata->has_36bit_dma) { in mxc_isi_channel_set_outbuf() 128 dev_dbg(pipe->isi->dev, "input %ux%u, output %ux%u\n", in mxc_isi_channel_set_scaling() 240 dev_dbg(pipe->isi->dev, "CSC: %s -> %s\n", in mxc_isi_channel_set_csc() 285 const struct mxc_isi_set_thd *set_thd = pipe->isi->pdata->set_thd; in mxc_isi_channel_set_panic_threshold() 339 val |= CHNL_CTRL_SRC_INPUT(pipe->isi->pdata->num_ports); in mxc_isi_channel_set_control() 401 dev_dbg(pipe->isi->dev, "output format %p4cc", &format->pixelformat); in mxc_isi_channel_set_output_format() [all …]
|
/linux/fs/iomap/ |
H A D | swapfile.c | 30 static int iomap_swapfile_add_extent(struct iomap_swapfile_info *isi) in iomap_swapfile_add_extent() argument 32 struct iomap *iomap = &isi->iomap; in iomap_swapfile_add_extent() 40 if (unlikely(isi->nr_pages >= isi->sis->max)) in iomap_swapfile_add_extent() 42 max_pages = isi->sis->max - isi->nr_pages; in iomap_swapfile_add_extent() 66 if (isi->lowest_ppage > first_ppage_reported) in iomap_swapfile_add_extent() 67 isi->lowest_ppage = first_ppage_reported; in iomap_swapfile_add_extent() 68 if (isi->highest_ppage < (next_ppage - 1)) in iomap_swapfile_add_extent() 69 isi->highest_ppage = next_ppage - 1; in iomap_swapfile_add_extent() 72 error = add_swap_extent(isi->sis, isi->nr_pages, nr_pages, first_ppage); in iomap_swapfile_add_extent() 75 isi->nr_extents += error; in iomap_swapfile_add_extent() [all …]
|
/linux/Documentation/devicetree/bindings/media/ |
H A D | nxp,imx8-isi.yaml | 4 $id: http://devicetree.org/schemas/media/nxp,imx8-isi.yaml# 13 The Image Sensing Interface (ISI) combines image processing pipelines with 15 sources. The inputs to the ISI go through Pixel Link interfaces, and their 22 - fsl,imx8mn-isi 23 - fsl,imx8mp-isi 24 - fsl,imx93-isi 45 A phandle referencing the block control that contains the CSIS to ISI 59 Ports represent the Pixel Link inputs to the ISI. Their number and 77 - fsl,imx8mn-isi 78 - fsl,imx93-isi [all …]
|
H A D | atmel-isi.txt | 1 Atmel Image Sensor Interface (ISI) 4 Required properties for ISI: 5 - compatible: must be "atmel,at91sam9g45-isi" or "microchip,sam9x60-isi". 7 - interrupts: should contain IRQ line for the ISI. 13 ISI supports a single port node with parallel bus. It shall contain one 28 isi: isi@f0034000 { 29 compatible = "atmel,at91sam9g45-isi";
|
/linux/drivers/parisc/ |
H A D | iosapic.c | 105 ** intr_pin = iosapic_xlate_pin(isi,pcidev): 106 ** intr_line = find IRT entry(isi, PCI_SLOT(pcidev), intr_pin) 113 ** o locate vector_info (needs: isi, intr_line) 381 irt_find_irqline(struct iosapic_info *isi, u8 slot, u8 intr_pin) in irt_find_irqline() argument 413 if (!COMPARE_IRTE_ADDR(i, isi->isi_hpa)) in irt_find_irqline() 431 isi->isi_hpa, slot, intr_pin); in irt_find_irqline() 451 iosapic_xlate_pin(struct iosapic_info *isi, struct pci_dev *pcidev) in iosapic_xlate_pin() argument 514 return irt_find_irqline(isi, intr_slot, intr_pin); in iosapic_xlate_pin() 699 struct iosapic_info *isi = isi_obj; in iosapic_fixup_irq() local 704 if (!isi) { in iosapic_fixup_irq() [all …]
|
/linux/arch/arm/boot/dts/microchip/ |
H A D | at91sam9x5_isi.dtsi | 16 isi { 17 pinctrl_isi_data_0_7: isi-0-data-0-7 { 32 pinctrl_isi_data_8_9: isi-0-data-8-9 { 38 pinctrl_isi_data_10_11: isi-0-data-10-11 { 46 isi: isi@f8048000 { label 47 compatible = "atmel,at91sam9g45-isi";
|
H A D | sama5d3xmb.dtsi | 41 * i2c0 conflicts with ISI: 42 * disable it to allow the use of ISI 84 isi: isi@f0034000 { label
|
H A D | sama5d3xmb_cmp.dtsi | 40 * i2c0 conflicts with ISI: 41 * disable it to allow the use of ISI 83 isi: isi@f0034000 { label
|
H A D | sama5d35ek.dts | 36 isi: isi@f0034000 { label
|
/linux/Documentation/devicetree/bindings/soc/imx/ |
H A D | fsl,imx93-media-blk-ctrl.yaml | 45 - const: isi 78 "pxp", "lcdif", "isi", "csi", "dsi";
|
H A D | fsl,imx8mn-disp-blk-ctrl.yaml | 36 - const: isi 80 power-domain-names = "bus", "isi", "lcdif", "mipi-dsi",
|
H A D | fsl,imx8mp-media-blk-ctrl.yaml | 44 - const: isi 117 power-domain-names = "bus", "mipi-dsi1", "mipi-csi1", "lcdif1", "isi",
|
/linux/tools/perf/pmu-events/arch/arm64/freescale/imx95/sys/ |
H A D | metrics.json | 563 "BriefDescription": "bytes of isi rd read from ddr", 571 "BriefDescription": "bytes of isi rd write to ddr", 579 "BriefDescription": "bytes of isi wr y read from ddr", 587 "BriefDescription": "bytes of isi wr y write to ddr", 595 "BriefDescription": "bytes of isi wr u read from ddr", 603 "BriefDescription": "bytes of isi wr u write to ddr", 611 "BriefDescription": "bytes of isi wr v read from ddr", 619 "BriefDescription": "bytes of isi wr v write to ddr",
|
/linux/drivers/media/pci/ddbridge/ |
H A D | ddbridge-sx8.c | 354 u32 ts_config = SX8_TSCONFIG_MODE_NORMAL, iq_mode = 0, isi; in set_parameters() local 359 isi = p->stream_id; in set_parameters() 360 if (isi != NO_STREAM_ID_FILTER) in set_parameters() 361 iq_mode = (isi & 0x30000000) >> 28; in set_parameters()
|