Searched refs:iss (Results 1 - 34 of 34) sorted by relevance

/linux-4.4.14/drivers/staging/media/omap4iss/
H A Diss.c31 #include "iss.h"
34 #define ISS_PRINT_REGISTER(iss, name)\
35 dev_dbg(iss->dev, "###ISS " #name "=0x%08x\n", \
36 iss_reg_read(iss, OMAP4_ISS_MEM_TOP, ISS_##name))
38 static void iss_print_status(struct iss_device *iss) iss_print_status() argument
40 dev_dbg(iss->dev, "-------------ISS HL Register dump-------------\n"); iss_print_status()
42 ISS_PRINT_REGISTER(iss, HL_REVISION); iss_print_status()
43 ISS_PRINT_REGISTER(iss, HL_SYSCONFIG); iss_print_status()
44 ISS_PRINT_REGISTER(iss, HL_IRQSTATUS(5)); iss_print_status()
45 ISS_PRINT_REGISTER(iss, HL_IRQENABLE_SET(5)); iss_print_status()
46 ISS_PRINT_REGISTER(iss, HL_IRQENABLE_CLR(5)); iss_print_status()
47 ISS_PRINT_REGISTER(iss, CTRL); iss_print_status()
48 ISS_PRINT_REGISTER(iss, CLKCTRL); iss_print_status()
49 ISS_PRINT_REGISTER(iss, CLKSTAT); iss_print_status()
51 dev_dbg(iss->dev, "-----------------------------------------------\n"); iss_print_status()
56 * @iss: OMAP4 ISS device
64 void omap4iss_flush(struct iss_device *iss) omap4iss_flush() argument
66 iss_reg_write(iss, OMAP4_ISS_MEM_TOP, ISS_HL_REVISION, 0); omap4iss_flush()
67 iss_reg_read(iss, OMAP4_ISS_MEM_TOP, ISS_HL_REVISION); omap4iss_flush()
72 * @iss: OMAP4 ISS device
74 static void omap4iss_isp_enable_interrupts(struct iss_device *iss) omap4iss_isp_enable_interrupts() argument
83 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_SYS1, ISP5_IRQSTATUS(0), isp_irq); omap4iss_isp_enable_interrupts()
84 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_SYS1, ISP5_IRQENABLE_SET(0), omap4iss_isp_enable_interrupts()
90 * @iss: OMAP4 ISS device
92 static void omap4iss_isp_disable_interrupts(struct iss_device *iss) omap4iss_isp_disable_interrupts() argument
94 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_SYS1, ISP5_IRQENABLE_CLR(0), ~0); omap4iss_isp_disable_interrupts()
99 * @iss: OMAP4 ISS device
101 static void iss_enable_interrupts(struct iss_device *iss) iss_enable_interrupts() argument
107 iss_reg_write(iss, OMAP4_ISS_MEM_TOP, ISS_HL_IRQSTATUS(5), hl_irq); iss_enable_interrupts()
108 iss_reg_write(iss, OMAP4_ISS_MEM_TOP, ISS_HL_IRQENABLE_SET(5), hl_irq); iss_enable_interrupts()
110 if (iss->regs[OMAP4_ISS_MEM_ISP_SYS1]) iss_enable_interrupts()
111 omap4iss_isp_enable_interrupts(iss); iss_enable_interrupts()
116 * @iss: OMAP4 ISS device
118 static void iss_disable_interrupts(struct iss_device *iss) iss_disable_interrupts() argument
120 if (iss->regs[OMAP4_ISS_MEM_ISP_SYS1]) iss_disable_interrupts()
121 omap4iss_isp_disable_interrupts(iss); iss_disable_interrupts()
123 iss_reg_write(iss, OMAP4_ISS_MEM_TOP, ISS_HL_IRQENABLE_CLR(5), ~0); iss_disable_interrupts()
129 struct iss_device *iss = omap4iss_get_external_info() local
130 container_of(pipe, struct iss_video, pipe)->iss; omap4iss_get_external_info()
155 dev_warn(iss->dev, "no pixel rate control in subdev %s\n", omap4iss_get_external_info()
174 void omap4iss_configure_bridge(struct iss_device *iss, omap4iss_configure_bridge() argument
180 issctrl_val = iss_reg_read(iss, OMAP4_ISS_MEM_TOP, ISS_CTRL); omap4iss_configure_bridge()
184 isp5ctrl_val = iss_reg_read(iss, OMAP4_ISS_MEM_ISP_SYS1, ISP5_CTRL); omap4iss_configure_bridge()
204 iss_reg_write(iss, OMAP4_ISS_MEM_TOP, ISS_CTRL, issctrl_val); omap4iss_configure_bridge()
205 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_SYS1, ISP5_CTRL, isp5ctrl_val); omap4iss_configure_bridge()
209 static void iss_isr_dbg(struct iss_device *iss, u32 irqstatus) iss_isr_dbg() argument
247 dev_dbg(iss->dev, "ISS IRQ: "); iss_isr_dbg()
256 static void iss_isp_isr_dbg(struct iss_device *iss, u32 irqstatus) iss_isp_isr_dbg() argument
294 dev_dbg(iss->dev, "ISP IRQ: "); iss_isp_isr_dbg()
321 struct iss_device *iss = _iss; iss_isr() local
324 irqstatus = iss_reg_read(iss, OMAP4_ISS_MEM_TOP, ISS_HL_IRQSTATUS(5)); iss_isr()
325 iss_reg_write(iss, OMAP4_ISS_MEM_TOP, ISS_HL_IRQSTATUS(5), irqstatus); iss_isr()
328 omap4iss_csi2_isr(&iss->csi2a); iss_isr()
331 omap4iss_csi2_isr(&iss->csi2b); iss_isr()
334 u32 isp_irqstatus = iss_reg_read(iss, OMAP4_ISS_MEM_ISP_SYS1, iss_isr()
336 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_SYS1, ISP5_IRQSTATUS(0), iss_isr()
340 dev_dbg(iss->dev, "ISP5 OCP Error!\n"); iss_isr()
343 omap4iss_ipipeif_isr(&iss->ipipeif, iss_isr()
348 omap4iss_resizer_isr(&iss->resizer, iss_isr()
352 iss_isp_isr_dbg(iss, isp_irqstatus); iss_isr()
356 omap4iss_flush(iss); iss_isr()
359 iss_isr_dbg(iss, irqstatus); iss_isr()
579 struct iss_device *iss = pipe->output->iss; iss_pipeline_disable() local
604 dev_dbg(iss->dev, "%s: module stop timeout.\n", iss_pipeline_disable()
610 iss->crashed |= 1U << subdev->entity.id; iss_pipeline_disable()
632 struct iss_device *iss = pipe->output->iss; iss_pipeline_enable() local
645 if (pipe->entities & iss->crashed) iss_pipeline_enable()
674 if (subdev == &iss->csi2a.subdev || iss_pipeline_enable()
675 subdev == &iss->csi2b.subdev) iss_pipeline_enable()
679 iss_print_status(pipe->output->iss); iss_pipeline_enable()
751 static int iss_reset(struct iss_device *iss) iss_reset() argument
755 iss_reg_set(iss, OMAP4_ISS_MEM_TOP, ISS_HL_SYSCONFIG, iss_reset()
759 !(iss_reg_read(iss, OMAP4_ISS_MEM_TOP, ISS_HL_SYSCONFIG) & iss_reset()
762 dev_err(iss->dev, "ISS reset timeout\n"); iss_reset()
766 iss->crashed = 0; iss_reset()
770 static int iss_isp_reset(struct iss_device *iss) iss_isp_reset() argument
775 iss_reg_update(iss, OMAP4_ISS_MEM_ISP_SYS1, ISP5_SYSCONFIG, iss_isp_reset()
779 iss_reg_set(iss, OMAP4_ISS_MEM_ISP_SYS1, ISP5_CTRL, ISP5_CTRL_MSTANDBY); iss_isp_reset()
782 iss_reg_read(iss, OMAP4_ISS_MEM_ISP_SYS1, ISP5_CTRL) & iss_isp_reset()
785 dev_err(iss->dev, "ISP5 standby timeout\n"); iss_isp_reset()
790 iss_reg_set(iss, OMAP4_ISS_MEM_ISP_SYS1, ISP5_SYSCONFIG, iss_isp_reset()
794 !(iss_reg_read(iss, OMAP4_ISS_MEM_ISP_SYS1, ISP5_SYSCONFIG) & iss_isp_reset()
797 dev_err(iss->dev, "ISP5 reset timeout\n"); iss_isp_reset()
890 static int __iss_subclk_update(struct iss_device *iss) __iss_subclk_update() argument
895 if (iss->subclk_resources & OMAP4_ISS_SUBCLK_CSI2_A) __iss_subclk_update()
898 if (iss->subclk_resources & OMAP4_ISS_SUBCLK_CSI2_B) __iss_subclk_update()
901 if (iss->subclk_resources & OMAP4_ISS_SUBCLK_ISP) __iss_subclk_update()
904 iss_reg_update(iss, OMAP4_ISS_MEM_TOP, ISS_CLKCTRL, __iss_subclk_update()
910 if ((iss_reg_read(iss, OMAP4_ISS_MEM_TOP, ISS_CLKSTAT) & __iss_subclk_update()
921 int omap4iss_subclk_enable(struct iss_device *iss, omap4iss_subclk_enable() argument
924 iss->subclk_resources |= res; omap4iss_subclk_enable()
926 return __iss_subclk_update(iss); omap4iss_subclk_enable()
929 int omap4iss_subclk_disable(struct iss_device *iss, omap4iss_subclk_disable() argument
932 iss->subclk_resources &= ~res; omap4iss_subclk_disable()
934 return __iss_subclk_update(iss); omap4iss_subclk_disable()
944 static void __iss_isp_subclk_update(struct iss_device *iss) __iss_isp_subclk_update() argument
948 if (iss->isp_subclk_resources & OMAP4_ISS_ISP_SUBCLK_ISIF) __iss_isp_subclk_update()
951 if (iss->isp_subclk_resources & OMAP4_ISS_ISP_SUBCLK_H3A) __iss_isp_subclk_update()
954 if (iss->isp_subclk_resources & OMAP4_ISS_ISP_SUBCLK_RSZ) __iss_isp_subclk_update()
957 if (iss->isp_subclk_resources & OMAP4_ISS_ISP_SUBCLK_IPIPE) __iss_isp_subclk_update()
960 if (iss->isp_subclk_resources & OMAP4_ISS_ISP_SUBCLK_IPIPEIF) __iss_isp_subclk_update()
966 iss_reg_update(iss, OMAP4_ISS_MEM_ISP_SYS1, ISP5_CTRL, __iss_isp_subclk_update()
970 void omap4iss_isp_subclk_enable(struct iss_device *iss, omap4iss_isp_subclk_enable() argument
973 iss->isp_subclk_resources |= res; omap4iss_isp_subclk_enable()
975 __iss_isp_subclk_update(iss); omap4iss_isp_subclk_enable()
978 void omap4iss_isp_subclk_disable(struct iss_device *iss, omap4iss_isp_subclk_disable() argument
981 iss->isp_subclk_resources &= ~res; omap4iss_isp_subclk_disable()
983 __iss_isp_subclk_update(iss); omap4iss_isp_subclk_disable()
988 * @iss: OMAP4 ISS device
992 static int iss_enable_clocks(struct iss_device *iss) iss_enable_clocks() argument
996 ret = clk_enable(iss->iss_fck); iss_enable_clocks()
998 dev_err(iss->dev, "clk_enable iss_fck failed\n"); iss_enable_clocks()
1002 ret = clk_enable(iss->iss_ctrlclk); iss_enable_clocks()
1004 dev_err(iss->dev, "clk_enable iss_ctrlclk failed\n"); iss_enable_clocks()
1005 clk_disable(iss->iss_fck); iss_enable_clocks()
1014 * @iss: OMAP4 ISS device
1016 static void iss_disable_clocks(struct iss_device *iss) iss_disable_clocks() argument
1018 clk_disable(iss->iss_ctrlclk); iss_disable_clocks()
1019 clk_disable(iss->iss_fck); iss_disable_clocks()
1022 static int iss_get_clocks(struct iss_device *iss) iss_get_clocks() argument
1024 iss->iss_fck = devm_clk_get(iss->dev, "iss_fck"); iss_get_clocks()
1025 if (IS_ERR(iss->iss_fck)) { iss_get_clocks()
1026 dev_err(iss->dev, "Unable to get iss_fck clock info\n"); iss_get_clocks()
1027 return PTR_ERR(iss->iss_fck); iss_get_clocks()
1030 iss->iss_ctrlclk = devm_clk_get(iss->dev, "iss_ctrlclk"); iss_get_clocks()
1031 if (IS_ERR(iss->iss_ctrlclk)) { iss_get_clocks()
1032 dev_err(iss->dev, "Unable to get iss_ctrlclk clock info\n"); iss_get_clocks()
1033 return PTR_ERR(iss->iss_ctrlclk); iss_get_clocks()
1049 struct iss_device *omap4iss_get(struct iss_device *iss) omap4iss_get() argument
1051 struct iss_device *__iss = iss; omap4iss_get()
1053 if (!iss) omap4iss_get()
1056 mutex_lock(&iss->iss_mutex); omap4iss_get()
1057 if (iss->ref_count > 0) omap4iss_get()
1060 if (iss_enable_clocks(iss) < 0) { omap4iss_get()
1065 iss_enable_interrupts(iss); omap4iss_get()
1069 iss->ref_count++; omap4iss_get()
1070 mutex_unlock(&iss->iss_mutex); omap4iss_get()
1081 void omap4iss_put(struct iss_device *iss) omap4iss_put() argument
1083 if (!iss) omap4iss_put()
1086 mutex_lock(&iss->iss_mutex); omap4iss_put()
1087 BUG_ON(iss->ref_count == 0); omap4iss_put()
1088 if (--iss->ref_count == 0) { omap4iss_put()
1089 iss_disable_interrupts(iss); omap4iss_put()
1095 if (iss->crashed) omap4iss_put()
1096 iss_reset(iss); omap4iss_put()
1097 iss_disable_clocks(iss); omap4iss_put()
1099 mutex_unlock(&iss->iss_mutex); omap4iss_put()
1103 struct iss_device *iss, iss_map_mem_resource()
1110 iss->regs[res] = devm_ioremap_resource(iss->dev, mem); iss_map_mem_resource()
1112 return PTR_ERR_OR_ZERO(iss->regs[res]); iss_map_mem_resource()
1115 static void iss_unregister_entities(struct iss_device *iss) iss_unregister_entities() argument
1117 omap4iss_resizer_unregister_entities(&iss->resizer); iss_unregister_entities()
1118 omap4iss_ipipe_unregister_entities(&iss->ipipe); iss_unregister_entities()
1119 omap4iss_ipipeif_unregister_entities(&iss->ipipeif); iss_unregister_entities()
1120 omap4iss_csi2_unregister_entities(&iss->csi2a); iss_unregister_entities()
1121 omap4iss_csi2_unregister_entities(&iss->csi2b); iss_unregister_entities()
1123 v4l2_device_unregister(&iss->v4l2_dev); iss_unregister_entities()
1124 media_device_unregister(&iss->media_dev); iss_unregister_entities()
1129 * @iss: OMAP4 ISS device
1139 iss_register_subdev_group(struct iss_device *iss, iss_register_subdev_group() argument
1154 dev_err(iss->dev, iss_register_subdev_group()
1161 subdev = v4l2_i2c_new_subdev_board(&iss->v4l2_dev, adapter, iss_register_subdev_group()
1164 dev_err(iss->dev, "Unable to register subdev %s\n", iss_register_subdev_group()
1176 static int iss_register_entities(struct iss_device *iss) iss_register_entities() argument
1178 struct iss_platform_data *pdata = iss->pdata; iss_register_entities()
1182 iss->media_dev.dev = iss->dev; iss_register_entities()
1183 strlcpy(iss->media_dev.model, "TI OMAP4 ISS", iss_register_entities()
1184 sizeof(iss->media_dev.model)); iss_register_entities()
1185 iss->media_dev.hw_revision = iss->revision; iss_register_entities()
1186 iss->media_dev.link_notify = iss_pipeline_link_notify; iss_register_entities()
1187 ret = media_device_register(&iss->media_dev); iss_register_entities()
1189 dev_err(iss->dev, "Media device registration failed (%d)\n", iss_register_entities()
1194 iss->v4l2_dev.mdev = &iss->media_dev; iss_register_entities()
1195 ret = v4l2_device_register(iss->dev, &iss->v4l2_dev); iss_register_entities()
1197 dev_err(iss->dev, "V4L2 device registration failed (%d)\n", iss_register_entities()
1203 ret = omap4iss_csi2_register_entities(&iss->csi2a, &iss->v4l2_dev); iss_register_entities()
1207 ret = omap4iss_csi2_register_entities(&iss->csi2b, &iss->v4l2_dev); iss_register_entities()
1211 ret = omap4iss_ipipeif_register_entities(&iss->ipipeif, &iss->v4l2_dev); iss_register_entities()
1215 ret = omap4iss_ipipe_register_entities(&iss->ipipe, &iss->v4l2_dev); iss_register_entities()
1219 ret = omap4iss_resizer_register_entities(&iss->resizer, &iss->v4l2_dev); iss_register_entities()
1230 sensor = iss_register_subdev_group(iss, subdevs->subdevs); iss_register_entities()
1242 input = &iss->csi2a.subdev.entity; iss_register_entities()
1249 input = &iss->csi2b.subdev.entity; iss_register_entities()
1256 dev_err(iss->dev, "invalid interface type %u\n", iss_register_entities()
1268 ret = v4l2_device_register_subdev_nodes(&iss->v4l2_dev); iss_register_entities()
1272 iss_unregister_entities(iss); iss_register_entities()
1277 static void iss_cleanup_modules(struct iss_device *iss) iss_cleanup_modules() argument
1279 omap4iss_csi2_cleanup(iss); iss_cleanup_modules()
1280 omap4iss_ipipeif_cleanup(iss); iss_cleanup_modules()
1281 omap4iss_ipipe_cleanup(iss); iss_cleanup_modules()
1282 omap4iss_resizer_cleanup(iss); iss_cleanup_modules()
1285 static int iss_initialize_modules(struct iss_device *iss) iss_initialize_modules() argument
1289 ret = omap4iss_csiphy_init(iss); iss_initialize_modules()
1291 dev_err(iss->dev, "CSI PHY initialization failed\n"); iss_initialize_modules()
1295 ret = omap4iss_csi2_init(iss); iss_initialize_modules()
1297 dev_err(iss->dev, "CSI2 initialization failed\n"); iss_initialize_modules()
1301 ret = omap4iss_ipipeif_init(iss); iss_initialize_modules()
1303 dev_err(iss->dev, "ISP IPIPEIF initialization failed\n"); iss_initialize_modules()
1307 ret = omap4iss_ipipe_init(iss); iss_initialize_modules()
1309 dev_err(iss->dev, "ISP IPIPE initialization failed\n"); iss_initialize_modules()
1313 ret = omap4iss_resizer_init(iss); iss_initialize_modules()
1315 dev_err(iss->dev, "ISP RESIZER initialization failed\n"); iss_initialize_modules()
1321 &iss->csi2a.subdev.entity, CSI2_PAD_SOURCE, iss_initialize_modules()
1322 &iss->ipipeif.subdev.entity, IPIPEIF_PAD_SINK, 0); iss_initialize_modules()
1327 &iss->csi2b.subdev.entity, CSI2_PAD_SOURCE, iss_initialize_modules()
1328 &iss->ipipeif.subdev.entity, IPIPEIF_PAD_SINK, 0); iss_initialize_modules()
1333 &iss->ipipeif.subdev.entity, IPIPEIF_PAD_SOURCE_VP, iss_initialize_modules()
1334 &iss->resizer.subdev.entity, RESIZER_PAD_SINK, 0); iss_initialize_modules()
1339 &iss->ipipeif.subdev.entity, IPIPEIF_PAD_SOURCE_VP, iss_initialize_modules()
1340 &iss->ipipe.subdev.entity, IPIPE_PAD_SINK, 0); iss_initialize_modules()
1345 &iss->ipipe.subdev.entity, IPIPE_PAD_SOURCE_VP, iss_initialize_modules()
1346 &iss->resizer.subdev.entity, RESIZER_PAD_SINK, 0); iss_initialize_modules()
1353 omap4iss_resizer_cleanup(iss); iss_initialize_modules()
1355 omap4iss_ipipe_cleanup(iss); iss_initialize_modules()
1357 omap4iss_ipipeif_cleanup(iss); iss_initialize_modules()
1359 omap4iss_csi2_cleanup(iss); iss_initialize_modules()
1368 struct iss_device *iss; iss_probe() local
1375 iss = devm_kzalloc(&pdev->dev, sizeof(*iss), GFP_KERNEL); iss_probe()
1376 if (!iss) iss_probe()
1379 mutex_init(&iss->iss_mutex); iss_probe()
1381 iss->dev = &pdev->dev; iss_probe()
1382 iss->pdata = pdata; iss_probe()
1384 iss->raw_dmamask = DMA_BIT_MASK(32); iss_probe()
1385 iss->dev->dma_mask = &iss->raw_dmamask; iss_probe()
1386 iss->dev->coherent_dma_mask = DMA_BIT_MASK(32); iss_probe()
1388 platform_set_drvdata(pdev, iss); iss_probe()
1394 iss->syscon = syscon_regmap_lookup_by_compatible("syscon"); iss_probe()
1395 if (IS_ERR(iss->syscon)) { iss_probe()
1396 ret = PTR_ERR(iss->syscon); iss_probe()
1401 ret = iss_map_mem_resource(pdev, iss, OMAP4_ISS_MEM_TOP); iss_probe()
1405 ret = iss_get_clocks(iss); iss_probe()
1409 if (!omap4iss_get(iss)) iss_probe()
1412 ret = iss_reset(iss); iss_probe()
1416 iss->revision = iss_reg_read(iss, OMAP4_ISS_MEM_TOP, ISS_HL_REVISION); iss_probe()
1417 dev_info(iss->dev, "Revision %08x found\n", iss->revision); iss_probe()
1420 ret = iss_map_mem_resource(pdev, iss, i); iss_probe()
1426 iss_reg_update(iss, OMAP4_ISS_MEM_BTE, BTE_CTRL, iss_probe()
1431 ret = omap4iss_subclk_enable(iss, OMAP4_ISS_SUBCLK_ISP); iss_probe()
1435 ret = iss_isp_reset(iss); iss_probe()
1439 dev_info(iss->dev, "ISP Revision %08x found\n", iss_probe()
1440 iss_reg_read(iss, OMAP4_ISS_MEM_ISP_SYS1, ISP5_REVISION)); iss_probe()
1445 dev_err(iss->dev, "No IRQ resource\n"); iss_probe()
1449 iss->irq_num = ret; iss_probe()
1451 if (devm_request_irq(iss->dev, iss->irq_num, iss_isr, IRQF_SHARED, iss_probe()
1452 "OMAP4 ISS", iss)) { iss_probe()
1453 dev_err(iss->dev, "Unable to request IRQ\n"); iss_probe()
1459 ret = iss_initialize_modules(iss); iss_probe()
1463 ret = iss_register_entities(iss); iss_probe()
1467 omap4iss_put(iss); iss_probe()
1472 iss_cleanup_modules(iss); iss_probe()
1474 omap4iss_put(iss); iss_probe()
1478 mutex_destroy(&iss->iss_mutex); iss_probe()
1485 struct iss_device *iss = platform_get_drvdata(pdev); iss_remove() local
1487 iss_unregister_entities(iss); iss_remove()
1488 iss_cleanup_modules(iss); iss_remove()
1102 iss_map_mem_resource(struct platform_device *pdev, struct iss_device *iss, enum iss_mem_resources res) iss_map_mem_resource() argument
H A Diss_resizer.c22 #include "iss.h"
37 #define RSZ_PRINT_REGISTER(iss, name)\
38 dev_dbg(iss->dev, "###RSZ " #name "=0x%08x\n", \
39 iss_reg_read(iss, OMAP4_ISS_MEM_ISP_RESIZER, RSZ_##name))
41 #define RZA_PRINT_REGISTER(iss, name)\
42 dev_dbg(iss->dev, "###RZA " #name "=0x%08x\n", \
43 iss_reg_read(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_##name))
47 struct iss_device *iss = to_iss_device(resizer); resizer_print_status() local
49 dev_dbg(iss->dev, "-------------RESIZER Register dump-------------\n"); resizer_print_status()
51 RSZ_PRINT_REGISTER(iss, SYSCONFIG); resizer_print_status()
52 RSZ_PRINT_REGISTER(iss, IN_FIFO_CTRL); resizer_print_status()
53 RSZ_PRINT_REGISTER(iss, FRACDIV); resizer_print_status()
54 RSZ_PRINT_REGISTER(iss, SRC_EN); resizer_print_status()
55 RSZ_PRINT_REGISTER(iss, SRC_MODE); resizer_print_status()
56 RSZ_PRINT_REGISTER(iss, SRC_FMT0); resizer_print_status()
57 RSZ_PRINT_REGISTER(iss, SRC_FMT1); resizer_print_status()
58 RSZ_PRINT_REGISTER(iss, SRC_VPS); resizer_print_status()
59 RSZ_PRINT_REGISTER(iss, SRC_VSZ); resizer_print_status()
60 RSZ_PRINT_REGISTER(iss, SRC_HPS); resizer_print_status()
61 RSZ_PRINT_REGISTER(iss, SRC_HSZ); resizer_print_status()
62 RSZ_PRINT_REGISTER(iss, DMA_RZA); resizer_print_status()
63 RSZ_PRINT_REGISTER(iss, DMA_RZB); resizer_print_status()
64 RSZ_PRINT_REGISTER(iss, DMA_STA); resizer_print_status()
65 RSZ_PRINT_REGISTER(iss, GCK_MMR); resizer_print_status()
66 RSZ_PRINT_REGISTER(iss, GCK_SDR); resizer_print_status()
67 RSZ_PRINT_REGISTER(iss, IRQ_RZA); resizer_print_status()
68 RSZ_PRINT_REGISTER(iss, IRQ_RZB); resizer_print_status()
69 RSZ_PRINT_REGISTER(iss, YUV_Y_MIN); resizer_print_status()
70 RSZ_PRINT_REGISTER(iss, YUV_Y_MAX); resizer_print_status()
71 RSZ_PRINT_REGISTER(iss, YUV_C_MIN); resizer_print_status()
72 RSZ_PRINT_REGISTER(iss, YUV_C_MAX); resizer_print_status()
73 RSZ_PRINT_REGISTER(iss, SEQ); resizer_print_status()
75 RZA_PRINT_REGISTER(iss, EN); resizer_print_status()
76 RZA_PRINT_REGISTER(iss, MODE); resizer_print_status()
77 RZA_PRINT_REGISTER(iss, 420); resizer_print_status()
78 RZA_PRINT_REGISTER(iss, I_VPS); resizer_print_status()
79 RZA_PRINT_REGISTER(iss, I_HPS); resizer_print_status()
80 RZA_PRINT_REGISTER(iss, O_VSZ); resizer_print_status()
81 RZA_PRINT_REGISTER(iss, O_HSZ); resizer_print_status()
82 RZA_PRINT_REGISTER(iss, V_PHS_Y); resizer_print_status()
83 RZA_PRINT_REGISTER(iss, V_PHS_C); resizer_print_status()
84 RZA_PRINT_REGISTER(iss, V_DIF); resizer_print_status()
85 RZA_PRINT_REGISTER(iss, V_TYP); resizer_print_status()
86 RZA_PRINT_REGISTER(iss, V_LPF); resizer_print_status()
87 RZA_PRINT_REGISTER(iss, H_PHS); resizer_print_status()
88 RZA_PRINT_REGISTER(iss, H_DIF); resizer_print_status()
89 RZA_PRINT_REGISTER(iss, H_TYP); resizer_print_status()
90 RZA_PRINT_REGISTER(iss, H_LPF); resizer_print_status()
91 RZA_PRINT_REGISTER(iss, DWN_EN); resizer_print_status()
92 RZA_PRINT_REGISTER(iss, SDR_Y_BAD_H); resizer_print_status()
93 RZA_PRINT_REGISTER(iss, SDR_Y_BAD_L); resizer_print_status()
94 RZA_PRINT_REGISTER(iss, SDR_Y_SAD_H); resizer_print_status()
95 RZA_PRINT_REGISTER(iss, SDR_Y_SAD_L); resizer_print_status()
96 RZA_PRINT_REGISTER(iss, SDR_Y_OFT); resizer_print_status()
97 RZA_PRINT_REGISTER(iss, SDR_Y_PTR_S); resizer_print_status()
98 RZA_PRINT_REGISTER(iss, SDR_Y_PTR_E); resizer_print_status()
99 RZA_PRINT_REGISTER(iss, SDR_C_BAD_H); resizer_print_status()
100 RZA_PRINT_REGISTER(iss, SDR_C_BAD_L); resizer_print_status()
101 RZA_PRINT_REGISTER(iss, SDR_C_SAD_H); resizer_print_status()
102 RZA_PRINT_REGISTER(iss, SDR_C_SAD_L); resizer_print_status()
103 RZA_PRINT_REGISTER(iss, SDR_C_OFT); resizer_print_status()
104 RZA_PRINT_REGISTER(iss, SDR_C_PTR_S); resizer_print_status()
105 RZA_PRINT_REGISTER(iss, SDR_C_PTR_E); resizer_print_status()
107 dev_dbg(iss->dev, "-----------------------------------------------\n"); resizer_print_status()
117 struct iss_device *iss = to_iss_device(resizer); resizer_enable() local
119 iss_reg_update(iss, OMAP4_ISS_MEM_ISP_RESIZER, RSZ_SRC_EN, resizer_enable()
123 iss_reg_update(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_EN, RSZ_EN_EN, resizer_enable()
140 struct iss_device *iss = to_iss_device(resizer); resizer_set_outaddr() local
147 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_SDR_Y_BAD_H, resizer_set_outaddr()
149 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_SDR_Y_BAD_L, resizer_set_outaddr()
153 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_SDR_Y_SAD_H, resizer_set_outaddr()
155 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_SDR_Y_SAD_L, resizer_set_outaddr()
172 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_SDR_C_BAD_H, resizer_set_outaddr()
174 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_SDR_C_BAD_L, resizer_set_outaddr()
178 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_SDR_C_SAD_H, resizer_set_outaddr()
180 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_SDR_C_SAD_L, resizer_set_outaddr()
187 struct iss_device *iss = to_iss_device(resizer); resizer_configure() local
196 iss_reg_clr(iss, OMAP4_ISS_MEM_ISP_RESIZER, RSZ_SRC_FMT0, resizer_configure()
200 iss_reg_update(iss, OMAP4_ISS_MEM_ISP_RESIZER, RSZ_SRC_FMT0, resizer_configure()
206 iss_reg_clr(iss, OMAP4_ISS_MEM_ISP_RESIZER, RSZ_SRC_MODE, resizer_configure()
210 iss_reg_clr(iss, OMAP4_ISS_MEM_ISP_RESIZER, RSZ_SRC_MODE, resizer_configure()
214 iss_reg_clr(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_MODE, resizer_configure()
218 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RSZ_SRC_VPS, 0); resizer_configure()
219 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RSZ_SRC_HPS, 0); resizer_configure()
220 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RSZ_SRC_VSZ, resizer_configure()
222 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RSZ_SRC_HSZ, resizer_configure()
225 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_I_VPS, 0); resizer_configure()
226 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_I_HPS, 0); resizer_configure()
228 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_O_VSZ, resizer_configure()
230 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_O_HSZ, resizer_configure()
233 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_V_DIF, 0x100); resizer_configure()
234 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_H_DIF, 0x100); resizer_configure()
237 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_SDR_Y_PTR_S, 0); resizer_configure()
238 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_SDR_Y_PTR_E, resizer_configure()
241 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_SDR_Y_OFT, resizer_configure()
247 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_420, resizer_configure()
251 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_SDR_C_PTR_S, resizer_configure()
253 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_SDR_C_PTR_E, resizer_configure()
256 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_SDR_C_OFT, resizer_configure()
259 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_RESIZER, RZA_420, 0); resizer_configure()
292 struct iss_device *iss = to_iss_device(resizer); omap4iss_resizer_isr() local
298 dev_dbg(iss->dev, "RSZ Err: FIFO_IN_BLK:%d, FIFO_OVF:%d\n", omap4iss_resizer_isr()
357 struct iss_device *iss = to_iss_device(resizer); resizer_set_stream() local
365 omap4iss_isp_subclk_enable(iss, OMAP4_ISS_ISP_SUBCLK_RSZ); resizer_set_stream()
367 iss_reg_set(iss, OMAP4_ISS_MEM_ISP_RESIZER, RSZ_GCK_MMR, resizer_set_stream()
369 iss_reg_set(iss, OMAP4_ISS_MEM_ISP_RESIZER, RSZ_GCK_SDR, resizer_set_stream()
373 iss_reg_set(iss, OMAP4_ISS_MEM_ISP_RESIZER, RSZ_SYSCONFIG, resizer_set_stream()
406 iss_reg_clr(iss, OMAP4_ISS_MEM_ISP_RESIZER, RSZ_SYSCONFIG, resizer_set_stream()
408 iss_reg_clr(iss, OMAP4_ISS_MEM_ISP_RESIZER, RSZ_GCK_SDR, resizer_set_stream()
410 iss_reg_clr(iss, OMAP4_ISS_MEM_ISP_RESIZER, RSZ_GCK_MMR, resizer_set_stream()
412 omap4iss_isp_subclk_disable(iss, OMAP4_ISS_ISP_SUBCLK_RSZ); resizer_set_stream()
718 struct iss_device *iss = to_iss_device(resizer); resizer_link_setup() local
731 if (remote->entity == &iss->ipipeif.subdev.entity) resizer_link_setup()
733 else if (remote->entity == &iss->ipipe.subdev.entity) resizer_link_setup()
780 sd->grp_id = 1 << 16; /* group ID for iss subdevs */ resizer_init_entities()
796 resizer->video_out.iss = to_iss_device(resizer); resizer_init_entities()
849 * @iss: Device pointer specific to the OMAP4 ISS.
855 int omap4iss_resizer_init(struct iss_device *iss) omap4iss_resizer_init() argument
857 struct iss_resizer_device *resizer = &iss->resizer; omap4iss_resizer_init()
867 * @iss: Device pointer specific to the OMAP4 ISS.
869 void omap4iss_resizer_cleanup(struct iss_device *iss) omap4iss_resizer_cleanup() argument
871 struct iss_resizer_device *resizer = &iss->resizer; omap4iss_resizer_cleanup()
H A Diss_ipipeif.c22 #include "iss.h"
41 #define IPIPEIF_PRINT_REGISTER(iss, name)\
42 dev_dbg(iss->dev, "###IPIPEIF " #name "=0x%08x\n", \
43 iss_reg_read(iss, OMAP4_ISS_MEM_ISP_IPIPEIF, IPIPEIF_##name))
45 #define ISIF_PRINT_REGISTER(iss, name)\
46 dev_dbg(iss->dev, "###ISIF " #name "=0x%08x\n", \
47 iss_reg_read(iss, OMAP4_ISS_MEM_ISP_ISIF, ISIF_##name))
49 #define ISP5_PRINT_REGISTER(iss, name)\
50 dev_dbg(iss->dev, "###ISP5 " #name "=0x%08x\n", \
51 iss_reg_read(iss, OMAP4_ISS_MEM_ISP_SYS1, ISP5_##name))
55 struct iss_device *iss = to_iss_device(ipipeif); ipipeif_print_status() local
57 dev_dbg(iss->dev, "-------------IPIPEIF Register dump-------------\n"); ipipeif_print_status()
59 IPIPEIF_PRINT_REGISTER(iss, CFG1); ipipeif_print_status()
60 IPIPEIF_PRINT_REGISTER(iss, CFG2); ipipeif_print_status()
62 ISIF_PRINT_REGISTER(iss, SYNCEN); ipipeif_print_status()
63 ISIF_PRINT_REGISTER(iss, CADU); ipipeif_print_status()
64 ISIF_PRINT_REGISTER(iss, CADL); ipipeif_print_status()
65 ISIF_PRINT_REGISTER(iss, MODESET); ipipeif_print_status()
66 ISIF_PRINT_REGISTER(iss, CCOLP); ipipeif_print_status()
67 ISIF_PRINT_REGISTER(iss, SPH); ipipeif_print_status()
68 ISIF_PRINT_REGISTER(iss, LNH); ipipeif_print_status()
69 ISIF_PRINT_REGISTER(iss, LNV); ipipeif_print_status()
70 ISIF_PRINT_REGISTER(iss, VDINT(0)); ipipeif_print_status()
71 ISIF_PRINT_REGISTER(iss, HSIZE); ipipeif_print_status()
73 ISP5_PRINT_REGISTER(iss, SYSCONFIG); ipipeif_print_status()
74 ISP5_PRINT_REGISTER(iss, CTRL); ipipeif_print_status()
75 ISP5_PRINT_REGISTER(iss, IRQSTATUS(0)); ipipeif_print_status()
76 ISP5_PRINT_REGISTER(iss, IRQENABLE_SET(0)); ipipeif_print_status()
77 ISP5_PRINT_REGISTER(iss, IRQENABLE_CLR(0)); ipipeif_print_status()
79 dev_dbg(iss->dev, "-----------------------------------------------\n"); ipipeif_print_status()
84 struct iss_device *iss = to_iss_device(ipipeif); ipipeif_write_enable() local
86 iss_reg_update(iss, OMAP4_ISS_MEM_ISP_ISIF, ISIF_SYNCEN, ipipeif_write_enable()
97 struct iss_device *iss = to_iss_device(ipipeif); ipipeif_enable() local
99 iss_reg_update(iss, OMAP4_ISS_MEM_ISP_ISIF, ISIF_SYNCEN, ipipeif_enable()
116 struct iss_device *iss = to_iss_device(ipipeif); ipipeif_set_outaddr() local
119 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_ISIF, ISIF_CADU, ipipeif_set_outaddr()
121 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_ISIF, ISIF_CADL, ipipeif_set_outaddr()
127 struct iss_device *iss = to_iss_device(ipipeif); ipipeif_configure() local
132 omap4iss_configure_bridge(iss, ipipeif->input); ipipeif_configure()
138 iss_reg_clr(iss, OMAP4_ISS_MEM_ISP_IPIPEIF, IPIPEIF_CFG1, ipipeif_configure()
145 iss_reg_update(iss, OMAP4_ISS_MEM_ISP_ISIF, ISIF_MODESET, ipipeif_configure()
150 iss_reg_update(iss, OMAP4_ISS_MEM_ISP_IPIPEIF, IPIPEIF_CFG2, ipipeif_configure()
178 iss_reg_clr(iss, OMAP4_ISS_MEM_ISP_IPIPEIF, IPIPEIF_CFG2, ipipeif_configure()
181 iss_reg_update(iss, OMAP4_ISS_MEM_ISP_ISIF, ISIF_MODESET, ipipeif_configure()
187 iss_reg_update(iss, OMAP4_ISS_MEM_ISP_ISIF, ISIF_CGAMMAWD, ipipeif_configure()
192 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_ISIF, ISIF_CCOLP, ipipeif_configure()
197 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_ISIF, ISIF_SPH, 0 & ISIF_SPH_MASK); ipipeif_configure()
198 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_ISIF, ISIF_LNH, ipipeif_configure()
200 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_ISIF, ISIF_LNV, ipipeif_configure()
204 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_ISIF, ISIF_VDINT(0), ipipeif_configure()
210 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_ISIF, ISIF_HSIZE, ipipeif_configure()
309 struct iss_device *iss = to_iss_device(ipipeif); ipipeif_set_stream() local
317 omap4iss_isp_subclk_enable(iss, IPIPEIF_DRV_SUBCLK_MASK); ipipeif_set_stream()
353 omap4iss_isp_subclk_disable(iss, IPIPEIF_DRV_SUBCLK_MASK); ipipeif_set_stream()
664 struct iss_device *iss = to_iss_device(ipipeif); ipipeif_link_setup() local
677 if (remote->entity == &iss->csi2a.subdev.entity) ipipeif_link_setup()
679 else if (remote->entity == &iss->csi2b.subdev.entity) ipipeif_link_setup()
737 sd->grp_id = 1 << 16; /* group ID for iss subdevs */ ipipeif_init_entities()
754 ipipeif->video_out.iss = to_iss_device(ipipeif); ipipeif_init_entities()
807 * @iss: Device pointer specific to the OMAP4 ISS.
813 int omap4iss_ipipeif_init(struct iss_device *iss) omap4iss_ipipeif_init() argument
815 struct iss_ipipeif_device *ipipeif = &iss->ipipeif; omap4iss_ipipeif_init()
825 * @iss: Device pointer specific to the OMAP4 ISS.
827 void omap4iss_ipipeif_cleanup(struct iss_device *iss) omap4iss_ipipeif_cleanup() argument
829 struct iss_ipipeif_device *ipipeif = &iss->ipipeif; omap4iss_ipipeif_cleanup()
H A Diss.h140 void omap4iss_configure_bridge(struct iss_device *iss,
143 struct iss_device *omap4iss_get(struct iss_device *iss);
144 void omap4iss_put(struct iss_device *iss);
145 int omap4iss_subclk_enable(struct iss_device *iss,
147 int omap4iss_subclk_disable(struct iss_device *iss,
149 void omap4iss_isp_subclk_enable(struct iss_device *iss,
151 void omap4iss_isp_subclk_disable(struct iss_device *iss,
162 * @iss: the ISS device
169 u32 iss_reg_read(struct iss_device *iss, enum iss_mem_resources res, iss_reg_read() argument
172 return readl(iss->regs[res] + offset); iss_reg_read()
177 * @iss: the ISS device
183 void iss_reg_write(struct iss_device *iss, enum iss_mem_resources res, iss_reg_write() argument
186 writel(value, iss->regs[res] + offset); iss_reg_write()
191 * @iss: the ISS device
197 void iss_reg_clr(struct iss_device *iss, enum iss_mem_resources res, iss_reg_clr() argument
200 u32 v = iss_reg_read(iss, res, offset); iss_reg_clr()
202 iss_reg_write(iss, res, offset, v & ~clr); iss_reg_clr()
207 * @iss: the ISS device
213 void iss_reg_set(struct iss_device *iss, enum iss_mem_resources res, iss_reg_set() argument
216 u32 v = iss_reg_read(iss, res, offset); iss_reg_set()
218 iss_reg_write(iss, res, offset, v | set); iss_reg_set()
223 * @iss: the ISS device
232 void iss_reg_update(struct iss_device *iss, enum iss_mem_resources res, iss_reg_update() argument
235 u32 v = iss_reg_read(iss, res, offset); iss_reg_update()
237 iss_reg_write(iss, res, offset, (v & ~clr) | set); iss_reg_update()
H A Diss_ipipe.c22 #include "iss.h"
45 #define IPIPE_PRINT_REGISTER(iss, name)\
46 dev_dbg(iss->dev, "###IPIPE " #name "=0x%08x\n", \
47 iss_reg_read(iss, OMAP4_ISS_MEM_ISP_IPIPE, IPIPE_##name))
51 struct iss_device *iss = to_iss_device(ipipe); ipipe_print_status() local
53 dev_dbg(iss->dev, "-------------IPIPE Register dump-------------\n"); ipipe_print_status()
55 IPIPE_PRINT_REGISTER(iss, SRC_EN); ipipe_print_status()
56 IPIPE_PRINT_REGISTER(iss, SRC_MODE); ipipe_print_status()
57 IPIPE_PRINT_REGISTER(iss, SRC_FMT); ipipe_print_status()
58 IPIPE_PRINT_REGISTER(iss, SRC_COL); ipipe_print_status()
59 IPIPE_PRINT_REGISTER(iss, SRC_VPS); ipipe_print_status()
60 IPIPE_PRINT_REGISTER(iss, SRC_VSZ); ipipe_print_status()
61 IPIPE_PRINT_REGISTER(iss, SRC_HPS); ipipe_print_status()
62 IPIPE_PRINT_REGISTER(iss, SRC_HSZ); ipipe_print_status()
63 IPIPE_PRINT_REGISTER(iss, GCK_MMR); ipipe_print_status()
64 IPIPE_PRINT_REGISTER(iss, YUV_PHS); ipipe_print_status()
66 dev_dbg(iss->dev, "-----------------------------------------------\n"); ipipe_print_status()
76 struct iss_device *iss = to_iss_device(ipipe); ipipe_enable() local
78 iss_reg_update(iss, OMAP4_ISS_MEM_ISP_IPIPE, IPIPE_SRC_EN, ipipe_enable()
88 struct iss_device *iss = to_iss_device(ipipe); ipipe_configure() local
95 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_IPIPE, IPIPE_SRC_FMT, ipipe_configure()
99 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_IPIPE, IPIPE_YUV_PHS, ipipe_configure()
102 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_IPIPE, IPIPE_SRC_VPS, 0); ipipe_configure()
103 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_IPIPE, IPIPE_SRC_HPS, 0); ipipe_configure()
104 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_IPIPE, IPIPE_SRC_VSZ, ipipe_configure()
106 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_IPIPE, IPIPE_SRC_HSZ, ipipe_configure()
110 iss_reg_clr(iss, OMAP4_ISS_MEM_ISP_IPIPE, IPIPE_SRC_MODE, ipipe_configure()
114 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_IPIPE, IPIPE_SRC_COL, ipipe_configure()
135 struct iss_device *iss = to_iss_device(ipipe); ipipe_set_stream() local
142 omap4iss_isp_subclk_enable(iss, OMAP4_ISS_ISP_SUBCLK_IPIPE); ipipe_set_stream()
145 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_IPIPE, IPIPE_GCK_MMR, ipipe_set_stream()
149 iss_reg_write(iss, OMAP4_ISS_MEM_ISP_IPIPE, IPIPE_GCK_PIX, ipipe_set_stream()
172 omap4iss_isp_subclk_disable(iss, OMAP4_ISS_ISP_SUBCLK_IPIPE); ipipe_set_stream()
448 struct iss_device *iss = to_iss_device(ipipe); ipipe_link_setup() local
461 if (remote->entity == &iss->ipipeif.subdev.entity) ipipe_link_setup()
508 sd->grp_id = 1 << 16; /* group ID for iss subdevs */ ipipe_init_entities()
553 * @iss: Device pointer specific to the OMAP4 ISS.
559 int omap4iss_ipipe_init(struct iss_device *iss) omap4iss_ipipe_init() argument
561 struct iss_ipipe_device *ipipe = &iss->ipipe; omap4iss_ipipe_init()
571 * @iss: Device pointer specific to the OMAP4 ISS.
573 void omap4iss_ipipe_cleanup(struct iss_device *iss) omap4iss_ipipe_cleanup() argument
575 struct iss_ipipe_device *ipipe = &iss->ipipe; omap4iss_ipipe_cleanup()
H A Diss_csi2.c19 #include "iss.h"
32 iss_reg_update(csi2->iss, csi2->regs1, CSI2_CTRL, CSI2_CTRL_IF_EN, csi2_if_enable()
92 iss_reg_write(csi2->iss, csi2->regs1, CSI2_CTRL, reg); csi2_recv_config()
262 iss_reg_write(csi2->iss, csi2->regs1, CSI2_CTX_PING_ADDR(ctx->ctxnum), csi2_set_outaddr()
264 iss_reg_write(csi2->iss, csi2->regs1, CSI2_CTX_PONG_ADDR(ctx->ctxnum), csi2_set_outaddr()
290 reg = iss_reg_read(csi2->iss, csi2->regs1, CSI2_CTX_CTRL1(ctxnum)); csi2_ctx_enable()
308 iss_reg_write(csi2->iss, csi2->regs1, CSI2_CTX_CTRL1(ctxnum), reg); csi2_ctx_enable()
334 iss_reg_write(csi2->iss, csi2->regs1, CSI2_CTX_CTRL1(ctx->ctxnum), reg); csi2_ctx_config()
346 iss_reg_write(csi2->iss, csi2->regs1, CSI2_CTX_CTRL2(ctx->ctxnum), reg); csi2_ctx_config()
349 iss_reg_write(csi2->iss, csi2->regs1, CSI2_CTX_CTRL3(ctx->ctxnum), csi2_ctx_config()
353 iss_reg_update(csi2->iss, csi2->regs1, CSI2_CTX_DAT_OFST(ctx->ctxnum), csi2_ctx_config()
356 iss_reg_write(csi2->iss, csi2->regs1, CSI2_CTX_PING_ADDR(ctx->ctxnum), csi2_ctx_config()
358 iss_reg_write(csi2->iss, csi2->regs1, CSI2_CTX_PONG_ADDR(ctx->ctxnum), csi2_ctx_config()
371 reg = iss_reg_read(csi2->iss, csi2->regs1, CSI2_TIMING); csi2_timing_config()
392 iss_reg_write(csi2->iss, csi2->regs1, CSI2_TIMING, reg); csi2_timing_config()
405 iss_reg_write(csi2->iss, csi2->regs1, CSI2_CTX_IRQSTATUS(i), csi2_irq_ctx_set()
408 iss_reg_set(csi2->iss, csi2->regs1, csi2_irq_ctx_set()
411 iss_reg_clr(csi2->iss, csi2->regs1, csi2_irq_ctx_set()
451 iss_reg_write(csi2->iss, csi2->regs1, CSI2_COMPLEXIO_IRQSTATUS, reg); csi2_irq_complexio1_set()
453 iss_reg_set(csi2->iss, csi2->regs1, CSI2_COMPLEXIO_IRQENABLE, csi2_irq_complexio1_set()
456 iss_reg_write(csi2->iss, csi2->regs1, CSI2_COMPLEXIO_IRQENABLE, csi2_irq_complexio1_set()
475 iss_reg_write(csi2->iss, csi2->regs1, CSI2_IRQSTATUS, reg); csi2_irq_status_set()
477 iss_reg_set(csi2->iss, csi2->regs1, CSI2_IRQENABLE, reg); csi2_irq_status_set()
479 iss_reg_write(csi2->iss, csi2->regs1, CSI2_IRQENABLE, 0); csi2_irq_status_set()
499 iss_reg_set(csi2->iss, csi2->regs1, CSI2_SYSCONFIG, omap4iss_csi2_reset()
503 iss_reg_read(csi2->iss, csi2->regs1, CSI2_SYSSTATUS) & omap4iss_csi2_reset()
506 dev_err(csi2->iss->dev, "CSI2: Soft reset timeout!\n"); omap4iss_csi2_reset()
510 iss_reg_set(csi2->iss, csi2->regs1, CSI2_COMPLEXIO_CFG, omap4iss_csi2_reset()
514 iss_reg_read(csi2->iss, csi2->phy->phy_regs, REGISTER1) & omap4iss_csi2_reset()
517 dev_err(csi2->iss->dev, "CSI2: CSI2_96M_FCLK reset timeout!\n"); omap4iss_csi2_reset()
521 iss_reg_update(csi2->iss, csi2->regs1, CSI2_SYSCONFIG, omap4iss_csi2_reset()
604 #define CSI2_PRINT_REGISTER(iss, regs, name)\
605 dev_dbg(iss->dev, "###CSI2 " #name "=0x%08x\n", \
606 iss_reg_read(iss, regs, CSI2_##name))
610 struct iss_device *iss = csi2->iss; csi2_print_status() local
615 dev_dbg(iss->dev, "-------------CSI2 Register dump-------------\n"); csi2_print_status()
617 CSI2_PRINT_REGISTER(iss, csi2->regs1, SYSCONFIG); csi2_print_status()
618 CSI2_PRINT_REGISTER(iss, csi2->regs1, SYSSTATUS); csi2_print_status()
619 CSI2_PRINT_REGISTER(iss, csi2->regs1, IRQENABLE); csi2_print_status()
620 CSI2_PRINT_REGISTER(iss, csi2->regs1, IRQSTATUS); csi2_print_status()
621 CSI2_PRINT_REGISTER(iss, csi2->regs1, CTRL); csi2_print_status()
622 CSI2_PRINT_REGISTER(iss, csi2->regs1, DBG_H); csi2_print_status()
623 CSI2_PRINT_REGISTER(iss, csi2->regs1, COMPLEXIO_CFG); csi2_print_status()
624 CSI2_PRINT_REGISTER(iss, csi2->regs1, COMPLEXIO_IRQSTATUS); csi2_print_status()
625 CSI2_PRINT_REGISTER(iss, csi2->regs1, SHORT_PACKET); csi2_print_status()
626 CSI2_PRINT_REGISTER(iss, csi2->regs1, COMPLEXIO_IRQENABLE); csi2_print_status()
627 CSI2_PRINT_REGISTER(iss, csi2->regs1, DBG_P); csi2_print_status()
628 CSI2_PRINT_REGISTER(iss, csi2->regs1, TIMING); csi2_print_status()
629 CSI2_PRINT_REGISTER(iss, csi2->regs1, CTX_CTRL1(0)); csi2_print_status()
630 CSI2_PRINT_REGISTER(iss, csi2->regs1, CTX_CTRL2(0)); csi2_print_status()
631 CSI2_PRINT_REGISTER(iss, csi2->regs1, CTX_DAT_OFST(0)); csi2_print_status()
632 CSI2_PRINT_REGISTER(iss, csi2->regs1, CTX_PING_ADDR(0)); csi2_print_status()
633 CSI2_PRINT_REGISTER(iss, csi2->regs1, CTX_PONG_ADDR(0)); csi2_print_status()
634 CSI2_PRINT_REGISTER(iss, csi2->regs1, CTX_IRQENABLE(0)); csi2_print_status()
635 CSI2_PRINT_REGISTER(iss, csi2->regs1, CTX_IRQSTATUS(0)); csi2_print_status()
636 CSI2_PRINT_REGISTER(iss, csi2->regs1, CTX_CTRL3(0)); csi2_print_status()
638 dev_dbg(iss->dev, "--------------------------------------------\n"); csi2_print_status()
674 status = iss_reg_read(csi2->iss, csi2->regs1, CSI2_CTX_IRQSTATUS(n)); csi2_isr_ctx()
675 iss_reg_write(csi2->iss, csi2->regs1, CSI2_CTX_IRQSTATUS(n), status); csi2_isr_ctx()
684 frame = iss_reg_read(csi2->iss, csi2->regs1, csi2_isr_ctx()
745 struct iss_device *iss = csi2->iss; omap4iss_csi2_isr() local
750 csi2_irqstatus = iss_reg_read(csi2->iss, csi2->regs1, CSI2_IRQSTATUS); omap4iss_csi2_isr()
751 iss_reg_write(csi2->iss, csi2->regs1, CSI2_IRQSTATUS, csi2_irqstatus); omap4iss_csi2_isr()
755 cpxio1_irqstatus = iss_reg_read(csi2->iss, csi2->regs1, omap4iss_csi2_isr()
757 iss_reg_write(csi2->iss, csi2->regs1, CSI2_COMPLEXIO_IRQSTATUS, omap4iss_csi2_isr()
759 dev_dbg(iss->dev, "CSI2: ComplexIO Error IRQ %x\n", omap4iss_csi2_isr()
769 dev_dbg(iss->dev, omap4iss_csi2_isr()
787 dev_dbg(iss->dev, "CSI2: ECC correction done\n"); omap4iss_csi2_isr()
1072 struct iss_device *iss = csi2->iss; csi2_set_stream() local
1080 omap4iss_subclk_enable(iss, csi2->subclk); csi2_set_stream()
1085 ret = omap4iss_csiphy_config(iss, sd); csi2_set_stream()
1120 omap4iss_subclk_disable(iss, csi2->subclk); csi2_set_stream()
1266 sd->grp_id = 1 << 16; /* group ID for iss subdevs */ csi2_init_entities()
1286 csi2->video_out.iss = csi2->iss; csi2_init_entities()
1311 int omap4iss_csi2_init(struct iss_device *iss) omap4iss_csi2_init() argument
1313 struct iss_csi2_device *csi2a = &iss->csi2a; omap4iss_csi2_init()
1314 struct iss_csi2_device *csi2b = &iss->csi2b; omap4iss_csi2_init()
1317 csi2a->iss = iss; omap4iss_csi2_init()
1320 csi2a->phy = &iss->csiphy1; omap4iss_csi2_init()
1329 csi2b->iss = iss; omap4iss_csi2_init()
1332 csi2b->phy = &iss->csiphy2; omap4iss_csi2_init()
1347 void omap4iss_csi2_cleanup(struct iss_device *iss) omap4iss_csi2_cleanup() argument
1349 struct iss_csi2_device *csi2a = &iss->csi2a; omap4iss_csi2_cleanup()
1350 struct iss_csi2_device *csi2b = &iss->csi2b; omap4iss_csi2_cleanup()
H A Diss_csiphy.c20 #include "iss.h"
35 reg = iss_reg_read(phy->iss, phy->cfg_regs, CSI2_COMPLEXIO_CFG); csiphy_lanes_config()
51 iss_reg_write(phy->iss, phy->cfg_regs, CSI2_COMPLEXIO_CFG, reg); csiphy_lanes_config()
65 iss_reg_update(phy->iss, phy->cfg_regs, CSI2_COMPLEXIO_CFG, csiphy_set_power()
72 reg = iss_reg_read(phy->iss, phy->cfg_regs, CSI2_COMPLEXIO_CFG) csiphy_set_power()
81 dev_err(phy->iss->dev, "CSI2 CIO set power failed!\n"); csiphy_set_power()
101 iss_reg_write(phy->iss, phy->phy_regs, REGISTER0, reg); csiphy_dphy_config()
109 iss_reg_write(phy->iss, phy->phy_regs, REGISTER1, reg); csiphy_dphy_config()
119 int omap4iss_csiphy_config(struct iss_device *iss, omap4iss_csiphy_config() argument
148 regmap_read(iss->syscon, 0x68, &cam_rx_ctrl); omap4iss_csiphy_config()
172 regmap_write(iss->syscon, 0x68, cam_rx_ctrl); omap4iss_csiphy_config()
259 int omap4iss_csiphy_init(struct iss_device *iss) omap4iss_csiphy_init() argument
261 struct iss_csiphy *phy1 = &iss->csiphy1; omap4iss_csiphy_init()
262 struct iss_csiphy *phy2 = &iss->csiphy2; omap4iss_csiphy_init()
264 phy1->iss = iss; omap4iss_csiphy_init()
265 phy1->csi2 = &iss->csi2a; omap4iss_csiphy_init()
272 phy2->iss = iss; omap4iss_csiphy_init()
273 phy2->csi2 = &iss->csi2b; omap4iss_csiphy_init()
H A Diss_csiphy.h30 struct iss_device *iss; member in struct:iss_csiphy
45 int omap4iss_csiphy_config(struct iss_device *iss,
49 int omap4iss_csiphy_init(struct iss_device *iss);
H A Diss_resizer.h63 int omap4iss_resizer_init(struct iss_device *iss);
64 void omap4iss_resizer_cleanup(struct iss_device *iss);
71 void omap4iss_resizer_restore_context(struct iss_device *iss);
H A Diss_ipipeif.h80 int omap4iss_ipipeif_init(struct iss_device *iss);
81 void omap4iss_ipipeif_cleanup(struct iss_device *iss);
88 void omap4iss_ipipeif_restore_context(struct iss_device *iss);
H A Diss_ipipe.h64 int omap4iss_ipipe_init(struct iss_device *iss);
65 void omap4iss_ipipe_cleanup(struct iss_device *iss);
H A Diss_csi2.h128 struct iss_device *iss; member in struct:iss_csi2_device
153 int omap4iss_csi2_init(struct iss_device *iss);
154 void omap4iss_csi2_cleanup(struct iss_device *iss);
H A Diss_video.c26 #include "iss.h"
334 dev_dbg(video->iss->dev, iss_video_buf_prepare()
776 if (video->iss->pdata->set_constraints) iss_video_streamon()
777 video->iss->pdata->set_constraints(video->iss, true); iss_video_streamon()
864 if (video->iss->pdata->set_constraints) iss_video_streamon()
865 video->iss->pdata->set_constraints(video->iss, false); iss_video_streamon()
906 if (video->iss->pdata->set_constraints) iss_video_streamoff()
907 video->iss->pdata->set_constraints(video->iss, false); iss_video_streamoff()
983 if (!omap4iss_get(video->iss)) { iss_video_open()
990 omap4iss_put(video->iss); iss_video_open()
994 video->alloc_ctx = vb2_dma_contig_init_ctx(video->iss->dev); iss_video_open()
997 omap4iss_put(video->iss); iss_video_open()
1013 omap4iss_put(video->iss); iss_video_open()
1052 omap4iss_put(video->iss); iss_video_release()
1149 dev_err(video->iss->dev, omap4iss_video_register()
H A Diss_video.h154 struct iss_device *iss; member in struct:iss_video
/linux-4.4.14/arch/xtensa/platforms/iss/include/platform/
H A Dhardware.h2 * include/asm-xtensa/platform-iss/hardware.h
H A Dsimcall.h2 * include/asm-xtensa/platform-iss/simcall.h
/linux-4.4.14/include/media/
H A Domap4iss.h62 void (*set_constraints)(struct iss_device *iss, bool enable);
/linux-4.4.14/arch/xtensa/platforms/iss/
H A Dsetup.c3 * arch/xtensa/platform-iss/setup.c
H A Dconsole.c2 * arch/xtensa/platforms/iss/console.c
135 /* Let's say iss can always accept 2K characters.. */ rs_write_room()
141 /* the iss doesn't buffer characters */ rs_chars_in_buffer()
H A Dnetwork.c3 * arch/xtensa/platforms/iss/network.c
38 #define DRIVER_NAME "iss-netdev"
H A Dsimdisk.c2 * arch/xtensa/platforms/iss/simdisk.c
/linux-4.4.14/arch/xtensa/
H A DMakefile37 platform-$(CONFIG_XTENSA_PLATFORM_ISS) := iss
/linux-4.4.14/arch/powerpc/platforms/44x/
H A Diss4xx.c154 if (!of_flat_dt_is_compatible(root, "ibm,iss-4xx")) iss4xx_probe()
/linux-4.4.14/drivers/net/ethernet/renesas/
H A Dravb_main.c707 u32 iss; ravb_interrupt() local
711 iss = ravb_read(ndev, ISS); ravb_interrupt()
714 if (iss & (ISS_FRS | ISS_FTS | ISS_TFUS)) { ravb_interrupt()
753 if (iss & ISS_MS) { ravb_interrupt()
759 if (iss & ISS_ES) { ravb_interrupt()
764 if (iss & ISS_CGIS) ravb_interrupt()
/linux-4.4.14/arch/arm/mach-omap2/
H A Domap_hwmod_44xx_data.c1440 * 'iss' class
1465 .name = "iss",
1469 /* iss */
1475 .name = "iss",
3290 /* iss -> l3_main_2 */
4113 /* l3_main_2 -> iss */
/linux-4.4.14/drivers/infiniband/hw/cxgb4/
H A Dt4fw_ri_api.h718 __be32 iss; member in struct:fw_ri_wr::fw_ri::fw_ri_init
H A Dcm.c2318 memset(&rpl5->iss, 0, roundup(sizeof(*rpl5)-sizeof(*rpl), 16)); accept_cr()
2321 rpl5->iss = cpu_to_be32(isn); accept_cr()
2322 PDBG("%s iss %u\n", __func__, be32_to_cpu(rpl5->iss)); accept_cr()
H A Dqp.c1324 wqe->u.init.iss = cpu_to_be32(qhp->ep->snd_seq); rdma_init()
/linux-4.4.14/arch/x86/kernel/cpu/
H A Dperf_event_intel_uncore_nhmex.c872 DEFINE_UNCORE_FORMAT_ATTR(iss, iss, "config1:0-31");
/linux-4.4.14/drivers/net/ethernet/chelsio/cxgb4/
H A Dt4_msg.h387 __be32 iss; member in struct:cpl_t5_pass_accept_rpl
/linux-4.4.14/arch/powerpc/kernel/
H A Dcputable.c1898 { /* 476 iss */
/linux-4.4.14/include/linux/mfd/
H A Dpalmas.h3010 /* TPS659038 regen2_ctrl offset iss different from palmas */
/linux-4.4.14/drivers/net/wireless/iwlegacy/
H A D3945-mac.c792 D_RX("beacon status %x retries %d iss %d " "tsf %d %d rate %d\n", il3945_hdl_beacon()
H A D4965-mac.c4098 D_RX("beacon status %x retries %d iss %d tsf:0x%.8x%.8x rate %d\n", il4965_hdl_beacon()

Completed in 961 milliseconds