/linux-4.4.14/drivers/staging/media/omap4iss/ |
H A D | iss.c | 31 #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 D | iss_resizer.c | 22 #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 D | iss_ipipeif.c | 22 #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 D | iss.h | 140 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 D | iss_ipipe.c | 22 #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 D | iss_csi2.c | 19 #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 D | iss_csiphy.c | 20 #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 D | iss_csiphy.h | 30 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 D | iss_resizer.h | 63 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 D | iss_ipipeif.h | 80 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 D | iss_ipipe.h | 64 int omap4iss_ipipe_init(struct iss_device *iss); 65 void omap4iss_ipipe_cleanup(struct iss_device *iss);
|
H A D | iss_csi2.h | 128 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 D | iss_video.c | 26 #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 D | iss_video.h | 154 struct iss_device *iss; member in struct:iss_video
|
/linux-4.4.14/arch/xtensa/platforms/iss/include/platform/ |
H A D | hardware.h | 2 * include/asm-xtensa/platform-iss/hardware.h
|
H A D | simcall.h | 2 * include/asm-xtensa/platform-iss/simcall.h
|
/linux-4.4.14/include/media/ |
H A D | omap4iss.h | 62 void (*set_constraints)(struct iss_device *iss, bool enable);
|
/linux-4.4.14/arch/xtensa/platforms/iss/ |
H A D | setup.c | 3 * arch/xtensa/platform-iss/setup.c
|
H A D | console.c | 2 * 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 D | network.c | 3 * arch/xtensa/platforms/iss/network.c 38 #define DRIVER_NAME "iss-netdev"
|
H A D | simdisk.c | 2 * arch/xtensa/platforms/iss/simdisk.c
|
/linux-4.4.14/arch/xtensa/ |
H A D | Makefile | 37 platform-$(CONFIG_XTENSA_PLATFORM_ISS) := iss
|
/linux-4.4.14/arch/powerpc/platforms/44x/ |
H A D | iss4xx.c | 154 if (!of_flat_dt_is_compatible(root, "ibm,iss-4xx")) iss4xx_probe()
|
/linux-4.4.14/drivers/net/ethernet/renesas/ |
H A D | ravb_main.c | 707 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 D | omap_hwmod_44xx_data.c | 1440 * '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 D | t4fw_ri_api.h | 718 __be32 iss; member in struct:fw_ri_wr::fw_ri::fw_ri_init
|
H A D | cm.c | 2318 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 D | qp.c | 1324 wqe->u.init.iss = cpu_to_be32(qhp->ep->snd_seq); rdma_init()
|
/linux-4.4.14/arch/x86/kernel/cpu/ |
H A D | perf_event_intel_uncore_nhmex.c | 872 DEFINE_UNCORE_FORMAT_ATTR(iss, iss, "config1:0-31");
|
/linux-4.4.14/drivers/net/ethernet/chelsio/cxgb4/ |
H A D | t4_msg.h | 387 __be32 iss; member in struct:cpl_t5_pass_accept_rpl
|
/linux-4.4.14/arch/powerpc/kernel/ |
H A D | cputable.c | 1898 { /* 476 iss */
|
/linux-4.4.14/include/linux/mfd/ |
H A D | palmas.h | 3010 /* TPS659038 regen2_ctrl offset iss different from palmas */
|
/linux-4.4.14/drivers/net/wireless/iwlegacy/ |
H A D | 3945-mac.c | 792 D_RX("beacon status %x retries %d iss %d " "tsf %d %d rate %d\n", il3945_hdl_beacon()
|
H A D | 4965-mac.c | 4098 D_RX("beacon status %x retries %d iss %d tsf:0x%.8x%.8x rate %d\n", il4965_hdl_beacon()
|