oh 1266 arch/arm/mach-omap2/clockdomain.c int clkdm_hwmod_enable(struct clockdomain *clkdm, struct omap_hwmod *oh) oh 1277 arch/arm/mach-omap2/clockdomain.c if (!oh) oh 1297 arch/arm/mach-omap2/clockdomain.c int clkdm_hwmod_disable(struct clockdomain *clkdm, struct omap_hwmod *oh) oh 1308 arch/arm/mach-omap2/clockdomain.c if (!clkdm || !oh || !arch_clkdm || !arch_clkdm->clkdm_clk_disable) oh 216 arch/arm/mach-omap2/clockdomain.h int clkdm_hwmod_enable(struct clockdomain *clkdm, struct omap_hwmod *oh); oh 217 arch/arm/mach-omap2/clockdomain.h int clkdm_hwmod_disable(struct clockdomain *clkdm, struct omap_hwmod *oh); oh 340 arch/arm/mach-omap2/common.h extern int dra7xx_pciess_reset(struct omap_hwmod *oh); oh 342 arch/arm/mach-omap2/common.h static inline int dra7xx_pciess_reset(struct omap_hwmod *oh) oh 283 arch/arm/mach-omap2/display.c struct omap_hwmod *oh; oh 285 arch/arm/mach-omap2/display.c oh = omap_hwmod_lookup("dss_dispc"); oh 286 arch/arm/mach-omap2/display.c if (!oh) { oh 291 arch/arm/mach-omap2/display.c if (!oh->dev_attr) { oh 296 arch/arm/mach-omap2/display.c da = (struct omap_dss_dispc_dev_attr *)oh->dev_attr; oh 299 arch/arm/mach-omap2/display.c v = omap_hwmod_read(oh, DISPC_CONTROL); oh 305 arch/arm/mach-omap2/display.c v = omap_hwmod_read(oh, DISPC_CONTROL2); oh 311 arch/arm/mach-omap2/display.c v = omap_hwmod_read(oh, DISPC_CONTROL3); oh 343 arch/arm/mach-omap2/display.c omap_hwmod_write(irq_mask, oh, DISPC_IRQSTATUS); oh 346 arch/arm/mach-omap2/display.c v = omap_hwmod_read(oh, DISPC_CONTROL); oh 348 arch/arm/mach-omap2/display.c omap_hwmod_write(v, oh, DISPC_CONTROL); oh 352 arch/arm/mach-omap2/display.c v = omap_hwmod_read(oh, DISPC_CONTROL2); oh 354 arch/arm/mach-omap2/display.c omap_hwmod_write(v, oh, DISPC_CONTROL2); oh 359 arch/arm/mach-omap2/display.c v = omap_hwmod_read(oh, DISPC_CONTROL3); oh 361 arch/arm/mach-omap2/display.c omap_hwmod_write(v, oh, DISPC_CONTROL3); oh 365 arch/arm/mach-omap2/display.c while ((omap_hwmod_read(oh, DISPC_IRQSTATUS) & irq_mask) != oh 376 arch/arm/mach-omap2/display.c int omap_dss_reset(struct omap_hwmod *oh) oh 382 arch/arm/mach-omap2/display.c if (!(oh->class->sysc->sysc_flags & SYSS_HAS_RESET_STATUS)) { oh 387 arch/arm/mach-omap2/display.c for (i = oh->opt_clks_cnt, oc = oh->opt_clks; i > 0; i--, oc++) oh 395 arch/arm/mach-omap2/display.c omap_hwmod_write(0x0, oh, DSS_SDI_CONTROL); oh 396 arch/arm/mach-omap2/display.c omap_hwmod_write(0x0, oh, DSS_PLL_CONTROL); oh 403 arch/arm/mach-omap2/display.c omap_hwmod_write(0x0, oh, DSS_CONTROL); oh 405 arch/arm/mach-omap2/display.c omap_test_timeout((omap_hwmod_read(oh, oh->class->sysc->syss_offs) oh 414 arch/arm/mach-omap2/display.c for (i = oh->opt_clks_cnt, oc = oh->opt_clks; i > 0; i--, oc++) oh 230 arch/arm/mach-omap2/dma.c static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) oh 239 arch/arm/mach-omap2/dma.c p.dma_attr = (struct omap_dma_dev_attr *)oh->dev_attr; oh 248 arch/arm/mach-omap2/dma.c pdev = omap_device_build(name, 0, oh, &p, sizeof(p)); oh 251 arch/arm/mach-omap2/dma.c __func__, name, oh->name); oh 270 arch/arm/mach-omap2/dma.c d = oh->dev_attr; oh 37 arch/arm/mach-omap2/hdq1w.c int omap_hdq1w_reset(struct omap_hwmod *oh) oh 43 arch/arm/mach-omap2/hdq1w.c omap_hwmod_softreset(oh); oh 46 arch/arm/mach-omap2/hdq1w.c v = omap_hwmod_read(oh, HDQ_CTRL_STATUS_OFFSET); oh 48 arch/arm/mach-omap2/hdq1w.c omap_hwmod_write(v, oh, HDQ_CTRL_STATUS_OFFSET); oh 51 arch/arm/mach-omap2/hdq1w.c omap_test_timeout((omap_hwmod_read(oh, oh 52 arch/arm/mach-omap2/hdq1w.c oh->class->sysc->syss_offs) oh 58 arch/arm/mach-omap2/hdq1w.c __func__, oh->name, MAX_MODULE_SOFTRESET_WAIT); oh 61 arch/arm/mach-omap2/hdq1w.c oh->name, c); oh 21 arch/arm/mach-omap2/hdq1w.h extern int omap_hdq1w_reset(struct omap_hwmod *oh); oh 73 arch/arm/mach-omap2/hsmmc.c struct omap_hwmod *oh; oh 97 arch/arm/mach-omap2/hsmmc.c oh = omap_hwmod_lookup(oh_name); oh 98 arch/arm/mach-omap2/hsmmc.c if (!oh) { oh 102 arch/arm/mach-omap2/hsmmc.c ohs[0] = oh; oh 103 arch/arm/mach-omap2/hsmmc.c if (oh->dev_attr != NULL) { oh 104 arch/arm/mach-omap2/hsmmc.c mmc_dev_attr = oh->dev_attr; oh 36 arch/arm/mach-omap2/i2c.c int omap_i2c_reset(struct omap_hwmod *oh) oh 48 arch/arm/mach-omap2/i2c.c v = omap_hwmod_read(oh, i2c_con); oh 50 arch/arm/mach-omap2/i2c.c omap_hwmod_write(v, oh, i2c_con); oh 53 arch/arm/mach-omap2/i2c.c omap_hwmod_softreset(oh); oh 56 arch/arm/mach-omap2/i2c.c v = omap_hwmod_read(oh, i2c_con); oh 58 arch/arm/mach-omap2/i2c.c omap_hwmod_write(v, oh, i2c_con); oh 61 arch/arm/mach-omap2/i2c.c omap_test_timeout((omap_hwmod_read(oh, oh 62 arch/arm/mach-omap2/i2c.c oh->class->sysc->syss_offs) oh 68 arch/arm/mach-omap2/i2c.c __func__, oh->name, MAX_MODULE_SOFTRESET_WAIT); oh 71 arch/arm/mach-omap2/i2c.c oh->name, c); oh 13 arch/arm/mach-omap2/i2c.h int omap_i2c_reset(struct omap_hwmod *oh); oh 404 arch/arm/mach-omap2/io.c static int _set_hwmod_postsetup_state(struct omap_hwmod *oh, void *data) oh 406 arch/arm/mach-omap2/io.c return omap_hwmod_set_postsetup_state(oh, *(u8 *)data); oh 12 arch/arm/mach-omap2/mmc.h int omap_msdi_reset(struct omap_hwmod *oh); oh 14 arch/arm/mach-omap2/mmc.h static inline int omap_msdi_reset(struct omap_hwmod *oh) oh 45 arch/arm/mach-omap2/msdi.c int omap_msdi_reset(struct omap_hwmod *oh) oh 51 arch/arm/mach-omap2/msdi.c omap_hwmod_softreset(oh); oh 56 arch/arm/mach-omap2/msdi.c omap_hwmod_write(v, oh, MSDI_CON_OFFSET); oh 59 arch/arm/mach-omap2/msdi.c omap_test_timeout((omap_hwmod_read(oh, oh->class->sysc->syss_offs) oh 65 arch/arm/mach-omap2/msdi.c __func__, oh->name, MAX_MODULE_SOFTRESET_WAIT); oh 68 arch/arm/mach-omap2/msdi.c oh->name, c); oh 72 arch/arm/mach-omap2/msdi.c omap_hwmod_write(v, oh, MSDI_CON_OFFSET); oh 109 arch/arm/mach-omap2/omap_device.c struct omap_hwmod *oh) oh 113 arch/arm/mach-omap2/omap_device.c _add_clkdev(od, "fck", oh->main_clk); oh 115 arch/arm/mach-omap2/omap_device.c for (i = 0; i < oh->opt_clks_cnt; i++) oh 116 arch/arm/mach-omap2/omap_device.c _add_clkdev(od, oh->opt_clks[i].role, oh->opt_clks[i].clk); oh 136 arch/arm/mach-omap2/omap_device.c struct omap_hwmod *oh; oh 168 arch/arm/mach-omap2/omap_device.c oh = omap_hwmod_lookup(oh_name); oh 169 arch/arm/mach-omap2/omap_device.c if (!oh) { oh 175 arch/arm/mach-omap2/omap_device.c hwmods[i] = oh; oh 176 arch/arm/mach-omap2/omap_device.c if (oh->flags & HWMOD_INIT_NO_IDLE) oh 393 arch/arm/mach-omap2/omap_device.c omap_device_copy_resources(struct omap_hwmod *oh, oh 402 arch/arm/mach-omap2/omap_device.c if (!oh || !oh->od || !oh->od->pdev) oh 405 arch/arm/mach-omap2/omap_device.c np = oh->od->pdev->dev.of_node; oh 416 arch/arm/mach-omap2/omap_device.c error = omap_hwmod_parse_module_range(oh, np, res); oh 460 arch/arm/mach-omap2/omap_device.c __func__, oh->name, dev_name(&pdev->dev), oh 482 arch/arm/mach-omap2/omap_device.c struct omap_hwmod *oh, oh 489 arch/arm/mach-omap2/omap_device.c if (!oh || !pdev_name) oh 495 arch/arm/mach-omap2/omap_device.c if (strncmp(oh->name, "smartreflex", 11) && oh 496 arch/arm/mach-omap2/omap_device.c strncmp(oh->name, "dma", 3)) { oh 520 arch/arm/mach-omap2/omap_device.c ret = omap_device_copy_resources(oh, pdev); oh 524 arch/arm/mach-omap2/omap_device.c od = omap_device_alloc(pdev, &oh, 1); oh 799 arch/arm/mach-omap2/omap_device.c struct omap_hwmod *oh; oh 806 arch/arm/mach-omap2/omap_device.c oh = omap_hwmod_lookup(oh_name); oh 807 arch/arm/mach-omap2/omap_device.c if (!oh) { oh 812 arch/arm/mach-omap2/omap_device.c if (!oh->od) { oh 818 arch/arm/mach-omap2/omap_device.c return &oh->od->pdev->dev; oh 72 arch/arm/mach-omap2/omap_device.h struct omap_hwmod *oh, void *pdata, oh 218 arch/arm/mach-omap2/omap_hwmod.c int (*reset)(struct omap_hwmod *oh); oh 231 arch/arm/mach-omap2/omap_hwmod.c void (*enable_module)(struct omap_hwmod *oh); oh 232 arch/arm/mach-omap2/omap_hwmod.c int (*disable_module)(struct omap_hwmod *oh); oh 233 arch/arm/mach-omap2/omap_hwmod.c int (*wait_target_ready)(struct omap_hwmod *oh); oh 234 arch/arm/mach-omap2/omap_hwmod.c int (*assert_hardreset)(struct omap_hwmod *oh, oh 236 arch/arm/mach-omap2/omap_hwmod.c int (*deassert_hardreset)(struct omap_hwmod *oh, oh 238 arch/arm/mach-omap2/omap_hwmod.c int (*is_hardreset_asserted)(struct omap_hwmod *oh, oh 240 arch/arm/mach-omap2/omap_hwmod.c int (*init_clkdm)(struct omap_hwmod *oh); oh 241 arch/arm/mach-omap2/omap_hwmod.c void (*update_context_lost)(struct omap_hwmod *oh); oh 242 arch/arm/mach-omap2/omap_hwmod.c int (*get_context_lost)(struct omap_hwmod *oh); oh 243 arch/arm/mach-omap2/omap_hwmod.c int (*disable_direct_prcm)(struct omap_hwmod *oh); oh 244 arch/arm/mach-omap2/omap_hwmod.c u32 (*xlate_clkctrl)(struct omap_hwmod *oh); oh 270 arch/arm/mach-omap2/omap_hwmod.c static int _update_sysc_cache(struct omap_hwmod *oh) oh 272 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc) { oh 273 arch/arm/mach-omap2/omap_hwmod.c WARN(1, "omap_hwmod: %s: cannot read OCP_SYSCONFIG: not defined on hwmod's class\n", oh->name); oh 279 arch/arm/mach-omap2/omap_hwmod.c oh->_sysc_cache = omap_hwmod_read(oh, oh->class->sysc->sysc_offs); oh 281 arch/arm/mach-omap2/omap_hwmod.c if (!(oh->class->sysc->sysc_flags & SYSC_NO_CACHE)) oh 282 arch/arm/mach-omap2/omap_hwmod.c oh->_int_flags |= _HWMOD_SYSCONFIG_LOADED; oh 295 arch/arm/mach-omap2/omap_hwmod.c static void _write_sysconfig(u32 v, struct omap_hwmod *oh) oh 297 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc) { oh 298 arch/arm/mach-omap2/omap_hwmod.c WARN(1, "omap_hwmod: %s: cannot write OCP_SYSCONFIG: not defined on hwmod's class\n", oh->name); oh 305 arch/arm/mach-omap2/omap_hwmod.c oh->_sysc_cache = v; oh 313 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->unlock) oh 314 arch/arm/mach-omap2/omap_hwmod.c oh->class->unlock(oh); oh 316 arch/arm/mach-omap2/omap_hwmod.c omap_hwmod_write(v, oh, oh->class->sysc->sysc_offs); oh 318 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->lock) oh 319 arch/arm/mach-omap2/omap_hwmod.c oh->class->lock(oh); oh 332 arch/arm/mach-omap2/omap_hwmod.c static int _set_master_standbymode(struct omap_hwmod *oh, u8 standbymode, oh 338 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc || oh 339 arch/arm/mach-omap2/omap_hwmod.c !(oh->class->sysc->sysc_flags & SYSC_HAS_MIDLEMODE)) oh 342 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc->sysc_fields) { oh 343 arch/arm/mach-omap2/omap_hwmod.c WARN(1, "omap_hwmod: %s: offset struct for sysconfig not provided in class\n", oh->name); oh 347 arch/arm/mach-omap2/omap_hwmod.c mstandby_shift = oh->class->sysc->sysc_fields->midle_shift; oh 366 arch/arm/mach-omap2/omap_hwmod.c static int _set_slave_idlemode(struct omap_hwmod *oh, u8 idlemode, u32 *v) oh 371 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc || oh 372 arch/arm/mach-omap2/omap_hwmod.c !(oh->class->sysc->sysc_flags & SYSC_HAS_SIDLEMODE)) oh 375 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc->sysc_fields) { oh 376 arch/arm/mach-omap2/omap_hwmod.c WARN(1, "omap_hwmod: %s: offset struct for sysconfig not provided in class\n", oh->name); oh 380 arch/arm/mach-omap2/omap_hwmod.c sidle_shift = oh->class->sysc->sysc_fields->sidle_shift; oh 400 arch/arm/mach-omap2/omap_hwmod.c static int _set_clockactivity(struct omap_hwmod *oh, u8 clockact, u32 *v) oh 405 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc || oh 406 arch/arm/mach-omap2/omap_hwmod.c !(oh->class->sysc->sysc_flags & SYSC_HAS_CLOCKACTIVITY)) oh 409 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc->sysc_fields) { oh 410 arch/arm/mach-omap2/omap_hwmod.c WARN(1, "omap_hwmod: %s: offset struct for sysconfig not provided in class\n", oh->name); oh 414 arch/arm/mach-omap2/omap_hwmod.c clkact_shift = oh->class->sysc->sysc_fields->clkact_shift; oh 431 arch/arm/mach-omap2/omap_hwmod.c static int _set_softreset(struct omap_hwmod *oh, u32 *v) oh 435 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc || oh 436 arch/arm/mach-omap2/omap_hwmod.c !(oh->class->sysc->sysc_flags & SYSC_HAS_SOFTRESET)) oh 439 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc->sysc_fields) { oh 440 arch/arm/mach-omap2/omap_hwmod.c WARN(1, "omap_hwmod: %s: offset struct for sysconfig not provided in class\n", oh->name); oh 444 arch/arm/mach-omap2/omap_hwmod.c softrst_mask = (0x1 << oh->class->sysc->sysc_fields->srst_shift); oh 459 arch/arm/mach-omap2/omap_hwmod.c static int _clear_softreset(struct omap_hwmod *oh, u32 *v) oh 463 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc || oh 464 arch/arm/mach-omap2/omap_hwmod.c !(oh->class->sysc->sysc_flags & SYSC_HAS_SOFTRESET)) oh 467 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc->sysc_fields) { oh 470 arch/arm/mach-omap2/omap_hwmod.c oh->name); oh 474 arch/arm/mach-omap2/omap_hwmod.c softrst_mask = (0x1 << oh->class->sysc->sysc_fields->srst_shift); oh 491 arch/arm/mach-omap2/omap_hwmod.c static int _wait_softreset_complete(struct omap_hwmod *oh) oh 497 arch/arm/mach-omap2/omap_hwmod.c sysc = oh->class->sysc; oh 500 arch/arm/mach-omap2/omap_hwmod.c omap_test_timeout((omap_hwmod_read(oh, sysc->syss_offs) oh 505 arch/arm/mach-omap2/omap_hwmod.c omap_test_timeout(!(omap_hwmod_read(oh, sysc->sysc_offs) oh 525 arch/arm/mach-omap2/omap_hwmod.c static int _set_dmadisable(struct omap_hwmod *oh) oh 530 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc || oh 531 arch/arm/mach-omap2/omap_hwmod.c !(oh->class->sysc->sysc_flags & SYSC_HAS_DMADISABLE)) oh 534 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc->sysc_fields) { oh 535 arch/arm/mach-omap2/omap_hwmod.c WARN(1, "omap_hwmod: %s: offset struct for sysconfig not provided in class\n", oh->name); oh 540 arch/arm/mach-omap2/omap_hwmod.c if (oh->_state != _HWMOD_STATE_ENABLED) { oh 541 arch/arm/mach-omap2/omap_hwmod.c pr_warn("omap_hwmod: %s: dma can be disabled only from enabled state\n", oh->name); oh 545 arch/arm/mach-omap2/omap_hwmod.c pr_debug("omap_hwmod: %s: setting DMADISABLE\n", oh->name); oh 547 arch/arm/mach-omap2/omap_hwmod.c v = oh->_sysc_cache; oh 549 arch/arm/mach-omap2/omap_hwmod.c (0x1 << oh->class->sysc->sysc_fields->dmadisable_shift); oh 551 arch/arm/mach-omap2/omap_hwmod.c _write_sysconfig(v, oh); oh 569 arch/arm/mach-omap2/omap_hwmod.c static int _set_module_autoidle(struct omap_hwmod *oh, u8 autoidle, oh 575 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc || oh 576 arch/arm/mach-omap2/omap_hwmod.c !(oh->class->sysc->sysc_flags & SYSC_HAS_AUTOIDLE)) oh 579 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc->sysc_fields) { oh 580 arch/arm/mach-omap2/omap_hwmod.c WARN(1, "omap_hwmod: %s: offset struct for sysconfig not provided in class\n", oh->name); oh 584 arch/arm/mach-omap2/omap_hwmod.c autoidle_shift = oh->class->sysc->sysc_fields->autoidle_shift; oh 600 arch/arm/mach-omap2/omap_hwmod.c static int _enable_wakeup(struct omap_hwmod *oh, u32 *v) oh 602 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc || oh 603 arch/arm/mach-omap2/omap_hwmod.c !((oh->class->sysc->sysc_flags & SYSC_HAS_ENAWAKEUP) || oh 604 arch/arm/mach-omap2/omap_hwmod.c (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP) || oh 605 arch/arm/mach-omap2/omap_hwmod.c (oh->class->sysc->idlemodes & MSTANDBY_SMART_WKUP))) oh 608 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc->sysc_fields) { oh 609 arch/arm/mach-omap2/omap_hwmod.c WARN(1, "omap_hwmod: %s: offset struct for sysconfig not provided in class\n", oh->name); oh 613 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->sysc->sysc_flags & SYSC_HAS_ENAWAKEUP) oh 614 arch/arm/mach-omap2/omap_hwmod.c *v |= 0x1 << oh->class->sysc->sysc_fields->enwkup_shift; oh 616 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP) oh 617 arch/arm/mach-omap2/omap_hwmod.c _set_slave_idlemode(oh, HWMOD_IDLEMODE_SMART_WKUP, v); oh 618 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->sysc->idlemodes & MSTANDBY_SMART_WKUP) oh 619 arch/arm/mach-omap2/omap_hwmod.c _set_master_standbymode(oh, HWMOD_IDLEMODE_SMART_WKUP, v); oh 633 arch/arm/mach-omap2/omap_hwmod.c static int _disable_wakeup(struct omap_hwmod *oh, u32 *v) oh 635 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc || oh 636 arch/arm/mach-omap2/omap_hwmod.c !((oh->class->sysc->sysc_flags & SYSC_HAS_ENAWAKEUP) || oh 637 arch/arm/mach-omap2/omap_hwmod.c (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP) || oh 638 arch/arm/mach-omap2/omap_hwmod.c (oh->class->sysc->idlemodes & MSTANDBY_SMART_WKUP))) oh 641 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc->sysc_fields) { oh 642 arch/arm/mach-omap2/omap_hwmod.c WARN(1, "omap_hwmod: %s: offset struct for sysconfig not provided in class\n", oh->name); oh 646 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->sysc->sysc_flags & SYSC_HAS_ENAWAKEUP) oh 647 arch/arm/mach-omap2/omap_hwmod.c *v &= ~(0x1 << oh->class->sysc->sysc_fields->enwkup_shift); oh 649 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP) oh 650 arch/arm/mach-omap2/omap_hwmod.c _set_slave_idlemode(oh, HWMOD_IDLEMODE_SMART, v); oh 651 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->sysc->idlemodes & MSTANDBY_SMART_WKUP) oh 652 arch/arm/mach-omap2/omap_hwmod.c _set_master_standbymode(oh, HWMOD_IDLEMODE_SMART, v); oh 659 arch/arm/mach-omap2/omap_hwmod.c static struct clockdomain *_get_clkdm(struct omap_hwmod *oh) oh 663 arch/arm/mach-omap2/omap_hwmod.c if (oh->clkdm) { oh 664 arch/arm/mach-omap2/omap_hwmod.c return oh->clkdm; oh 665 arch/arm/mach-omap2/omap_hwmod.c } else if (oh->_clk) { oh 666 arch/arm/mach-omap2/omap_hwmod.c if (!omap2_clk_is_hw_omap(__clk_get_hw(oh->_clk))) oh 668 arch/arm/mach-omap2/omap_hwmod.c clk = to_clk_hw_omap(__clk_get_hw(oh->_clk)); oh 687 arch/arm/mach-omap2/omap_hwmod.c static int _add_initiator_dep(struct omap_hwmod *oh, struct omap_hwmod *init_oh) oh 691 arch/arm/mach-omap2/omap_hwmod.c clkdm = _get_clkdm(oh); oh 716 arch/arm/mach-omap2/omap_hwmod.c static int _del_initiator_dep(struct omap_hwmod *oh, struct omap_hwmod *init_oh) oh 720 arch/arm/mach-omap2/omap_hwmod.c clkdm = _get_clkdm(oh); oh 792 arch/arm/mach-omap2/omap_hwmod.c static u32 _omap4_xlate_clkctrl(struct omap_hwmod *oh) oh 794 arch/arm/mach-omap2/omap_hwmod.c if (!oh->prcm.omap4.modulemode) oh 797 arch/arm/mach-omap2/omap_hwmod.c return omap_cm_xlate_clkctrl(oh->clkdm->prcm_partition, oh 798 arch/arm/mach-omap2/omap_hwmod.c oh->clkdm->cm_inst, oh 799 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap4.clkctrl_offs); oh 802 arch/arm/mach-omap2/omap_hwmod.c static struct clk *_lookup_clkctrl_clk(struct omap_hwmod *oh) oh 811 arch/arm/mach-omap2/omap_hwmod.c addr = soc_ops.xlate_clkctrl(oh); oh 815 arch/arm/mach-omap2/omap_hwmod.c pr_debug("%s: %s: addr=%x\n", __func__, oh->name, addr); oh 833 arch/arm/mach-omap2/omap_hwmod.c __func__, oh->name, clk, oh 852 arch/arm/mach-omap2/omap_hwmod.c static int _init_main_clk(struct omap_hwmod *oh) oh 857 arch/arm/mach-omap2/omap_hwmod.c clk = _lookup_clkctrl_clk(oh); oh 861 arch/arm/mach-omap2/omap_hwmod.c __clk_get_name(clk), oh->name); oh 862 arch/arm/mach-omap2/omap_hwmod.c oh->main_clk = __clk_get_name(clk); oh 863 arch/arm/mach-omap2/omap_hwmod.c oh->_clk = clk; oh 864 arch/arm/mach-omap2/omap_hwmod.c soc_ops.disable_direct_prcm(oh); oh 866 arch/arm/mach-omap2/omap_hwmod.c if (!oh->main_clk) oh 869 arch/arm/mach-omap2/omap_hwmod.c oh->_clk = clk_get(NULL, oh->main_clk); oh 872 arch/arm/mach-omap2/omap_hwmod.c if (IS_ERR(oh->_clk)) { oh 874 arch/arm/mach-omap2/omap_hwmod.c oh->name, oh->main_clk); oh 885 arch/arm/mach-omap2/omap_hwmod.c clk_prepare(oh->_clk); oh 887 arch/arm/mach-omap2/omap_hwmod.c if (!_get_clkdm(oh)) oh 889 arch/arm/mach-omap2/omap_hwmod.c oh->name, oh->main_clk); oh 901 arch/arm/mach-omap2/omap_hwmod.c static int _init_interface_clks(struct omap_hwmod *oh) oh 907 arch/arm/mach-omap2/omap_hwmod.c list_for_each_entry(os, &oh->slave_ports, node) { oh 914 arch/arm/mach-omap2/omap_hwmod.c oh->name, os->clk); oh 940 arch/arm/mach-omap2/omap_hwmod.c static int _init_opt_clks(struct omap_hwmod *oh) oh 947 arch/arm/mach-omap2/omap_hwmod.c for (i = oh->opt_clks_cnt, oc = oh->opt_clks; i > 0; i--, oc++) { oh 951 arch/arm/mach-omap2/omap_hwmod.c oh->name, oc->clk); oh 970 arch/arm/mach-omap2/omap_hwmod.c static void _enable_optional_clocks(struct omap_hwmod *oh) oh 975 arch/arm/mach-omap2/omap_hwmod.c pr_debug("omap_hwmod: %s: enabling optional clocks\n", oh->name); oh 977 arch/arm/mach-omap2/omap_hwmod.c for (i = oh->opt_clks_cnt, oc = oh->opt_clks; i > 0; i--, oc++) oh 985 arch/arm/mach-omap2/omap_hwmod.c static void _disable_optional_clocks(struct omap_hwmod *oh) oh 990 arch/arm/mach-omap2/omap_hwmod.c pr_debug("omap_hwmod: %s: disabling optional clocks\n", oh->name); oh 992 arch/arm/mach-omap2/omap_hwmod.c for (i = oh->opt_clks_cnt, oc = oh->opt_clks; i > 0; i--, oc++) oh 1007 arch/arm/mach-omap2/omap_hwmod.c static int _enable_clocks(struct omap_hwmod *oh) oh 1011 arch/arm/mach-omap2/omap_hwmod.c pr_debug("omap_hwmod: %s: enabling clocks\n", oh->name); oh 1013 arch/arm/mach-omap2/omap_hwmod.c if (oh->flags & HWMOD_OPT_CLKS_NEEDED) oh 1014 arch/arm/mach-omap2/omap_hwmod.c _enable_optional_clocks(oh); oh 1016 arch/arm/mach-omap2/omap_hwmod.c if (oh->_clk) oh 1017 arch/arm/mach-omap2/omap_hwmod.c clk_enable(oh->_clk); oh 1019 arch/arm/mach-omap2/omap_hwmod.c list_for_each_entry(os, &oh->slave_ports, node) { oh 1035 arch/arm/mach-omap2/omap_hwmod.c static bool _omap4_clkctrl_managed_by_clkfwk(struct omap_hwmod *oh) oh 1037 arch/arm/mach-omap2/omap_hwmod.c if (oh->prcm.omap4.flags & HWMOD_OMAP4_CLKFWK_CLKCTR_CLOCK) oh 1047 arch/arm/mach-omap2/omap_hwmod.c static bool _omap4_has_clkctrl_clock(struct omap_hwmod *oh) oh 1049 arch/arm/mach-omap2/omap_hwmod.c if (oh->prcm.omap4.clkctrl_offs) oh 1052 arch/arm/mach-omap2/omap_hwmod.c if (!oh->prcm.omap4.clkctrl_offs && oh 1053 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap4.flags & HWMOD_OMAP4_ZERO_CLKCTRL_OFFSET) oh 1065 arch/arm/mach-omap2/omap_hwmod.c static int _disable_clocks(struct omap_hwmod *oh) oh 1069 arch/arm/mach-omap2/omap_hwmod.c pr_debug("omap_hwmod: %s: disabling clocks\n", oh->name); oh 1071 arch/arm/mach-omap2/omap_hwmod.c if (oh->_clk) oh 1072 arch/arm/mach-omap2/omap_hwmod.c clk_disable(oh->_clk); oh 1074 arch/arm/mach-omap2/omap_hwmod.c list_for_each_entry(os, &oh->slave_ports, node) { oh 1081 arch/arm/mach-omap2/omap_hwmod.c if (oh->flags & HWMOD_OPT_CLKS_NEEDED) oh 1082 arch/arm/mach-omap2/omap_hwmod.c _disable_optional_clocks(oh); oh 1096 arch/arm/mach-omap2/omap_hwmod.c static void _omap4_enable_module(struct omap_hwmod *oh) oh 1098 arch/arm/mach-omap2/omap_hwmod.c if (!oh->clkdm || !oh->prcm.omap4.modulemode || oh 1099 arch/arm/mach-omap2/omap_hwmod.c _omap4_clkctrl_managed_by_clkfwk(oh)) oh 1103 arch/arm/mach-omap2/omap_hwmod.c oh->name, __func__, oh->prcm.omap4.modulemode); oh 1105 arch/arm/mach-omap2/omap_hwmod.c omap_cm_module_enable(oh->prcm.omap4.modulemode, oh 1106 arch/arm/mach-omap2/omap_hwmod.c oh->clkdm->prcm_partition, oh 1107 arch/arm/mach-omap2/omap_hwmod.c oh->clkdm->cm_inst, oh->prcm.omap4.clkctrl_offs); oh 1119 arch/arm/mach-omap2/omap_hwmod.c static int _omap4_wait_target_disable(struct omap_hwmod *oh) oh 1121 arch/arm/mach-omap2/omap_hwmod.c if (!oh) oh 1124 arch/arm/mach-omap2/omap_hwmod.c if (oh->_int_flags & _HWMOD_NO_MPU_PORT || !oh->clkdm) oh 1127 arch/arm/mach-omap2/omap_hwmod.c if (oh->flags & HWMOD_NO_IDLEST) oh 1130 arch/arm/mach-omap2/omap_hwmod.c if (_omap4_clkctrl_managed_by_clkfwk(oh)) oh 1133 arch/arm/mach-omap2/omap_hwmod.c if (!_omap4_has_clkctrl_clock(oh)) oh 1136 arch/arm/mach-omap2/omap_hwmod.c return omap_cm_wait_module_idle(oh->clkdm->prcm_partition, oh 1137 arch/arm/mach-omap2/omap_hwmod.c oh->clkdm->cm_inst, oh 1138 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap4.clkctrl_offs, 0); oh 1150 arch/arm/mach-omap2/omap_hwmod.c static void __init _save_mpu_port_index(struct omap_hwmod *oh) oh 1154 arch/arm/mach-omap2/omap_hwmod.c if (!oh) oh 1157 arch/arm/mach-omap2/omap_hwmod.c oh->_int_flags |= _HWMOD_NO_MPU_PORT; oh 1159 arch/arm/mach-omap2/omap_hwmod.c list_for_each_entry(os, &oh->slave_ports, node) { oh 1161 arch/arm/mach-omap2/omap_hwmod.c oh->_mpu_port = os; oh 1162 arch/arm/mach-omap2/omap_hwmod.c oh->_int_flags &= ~_HWMOD_NO_MPU_PORT; oh 1183 arch/arm/mach-omap2/omap_hwmod.c static struct omap_hwmod_ocp_if *_find_mpu_rt_port(struct omap_hwmod *oh) oh 1185 arch/arm/mach-omap2/omap_hwmod.c if (!oh || oh->_int_flags & _HWMOD_NO_MPU_PORT || oh->slaves_cnt == 0) oh 1188 arch/arm/mach-omap2/omap_hwmod.c return oh->_mpu_port; oh 1202 arch/arm/mach-omap2/omap_hwmod.c static void _enable_sysc(struct omap_hwmod *oh) oh 1209 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc) oh 1218 arch/arm/mach-omap2/omap_hwmod.c if (oh->flags & HWMOD_CONTROL_OPT_CLKS_IN_RESET) oh 1219 arch/arm/mach-omap2/omap_hwmod.c _enable_optional_clocks(oh); oh 1220 arch/arm/mach-omap2/omap_hwmod.c _wait_softreset_complete(oh); oh 1221 arch/arm/mach-omap2/omap_hwmod.c if (oh->flags & HWMOD_CONTROL_OPT_CLKS_IN_RESET) oh 1222 arch/arm/mach-omap2/omap_hwmod.c _disable_optional_clocks(oh); oh 1224 arch/arm/mach-omap2/omap_hwmod.c v = oh->_sysc_cache; oh 1225 arch/arm/mach-omap2/omap_hwmod.c sf = oh->class->sysc->sysc_flags; oh 1227 arch/arm/mach-omap2/omap_hwmod.c clkdm = _get_clkdm(oh); oh 1229 arch/arm/mach-omap2/omap_hwmod.c if (oh->flags & HWMOD_SWSUP_SIDLE || oh 1230 arch/arm/mach-omap2/omap_hwmod.c oh->flags & HWMOD_SWSUP_SIDLE_ACT) { oh 1234 arch/arm/mach-omap2/omap_hwmod.c _enable_wakeup(oh, &v); oh 1235 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP) oh 1246 arch/arm/mach-omap2/omap_hwmod.c if (clkdm_act && !(oh->class->sysc->idlemodes & oh 1250 arch/arm/mach-omap2/omap_hwmod.c _set_slave_idlemode(oh, idlemode, &v); oh 1254 arch/arm/mach-omap2/omap_hwmod.c if (oh->flags & HWMOD_FORCE_MSTANDBY) { oh 1256 arch/arm/mach-omap2/omap_hwmod.c } else if (oh->flags & HWMOD_SWSUP_MSTANDBY) { oh 1260 arch/arm/mach-omap2/omap_hwmod.c _enable_wakeup(oh, &v); oh 1261 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->sysc->idlemodes & MSTANDBY_SMART_WKUP) oh 1266 arch/arm/mach-omap2/omap_hwmod.c _set_master_standbymode(oh, idlemode, &v); oh 1274 arch/arm/mach-omap2/omap_hwmod.c if ((oh->flags & HWMOD_SET_DEFAULT_CLOCKACT) && oh 1276 arch/arm/mach-omap2/omap_hwmod.c _set_clockactivity(oh, CLOCKACT_TEST_ICLK, &v); oh 1278 arch/arm/mach-omap2/omap_hwmod.c _write_sysconfig(v, oh); oh 1285 arch/arm/mach-omap2/omap_hwmod.c idlemode = (oh->flags & HWMOD_NO_OCP_AUTOIDLE) ? oh 1287 arch/arm/mach-omap2/omap_hwmod.c _set_module_autoidle(oh, idlemode, &v); oh 1288 arch/arm/mach-omap2/omap_hwmod.c _write_sysconfig(v, oh); oh 1301 arch/arm/mach-omap2/omap_hwmod.c static void _idle_sysc(struct omap_hwmod *oh) oh 1306 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc) oh 1309 arch/arm/mach-omap2/omap_hwmod.c v = oh->_sysc_cache; oh 1310 arch/arm/mach-omap2/omap_hwmod.c sf = oh->class->sysc->sysc_flags; oh 1313 arch/arm/mach-omap2/omap_hwmod.c if (oh->flags & HWMOD_SWSUP_SIDLE) { oh 1317 arch/arm/mach-omap2/omap_hwmod.c _enable_wakeup(oh, &v); oh 1318 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP) oh 1323 arch/arm/mach-omap2/omap_hwmod.c _set_slave_idlemode(oh, idlemode, &v); oh 1327 arch/arm/mach-omap2/omap_hwmod.c if ((oh->flags & HWMOD_SWSUP_MSTANDBY) || oh 1328 arch/arm/mach-omap2/omap_hwmod.c (oh->flags & HWMOD_FORCE_MSTANDBY)) { oh 1332 arch/arm/mach-omap2/omap_hwmod.c _enable_wakeup(oh, &v); oh 1333 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->sysc->idlemodes & MSTANDBY_SMART_WKUP) oh 1338 arch/arm/mach-omap2/omap_hwmod.c _set_master_standbymode(oh, idlemode, &v); oh 1342 arch/arm/mach-omap2/omap_hwmod.c if (oh->_sysc_cache != v) oh 1343 arch/arm/mach-omap2/omap_hwmod.c _write_sysconfig(v, oh); oh 1353 arch/arm/mach-omap2/omap_hwmod.c static void _shutdown_sysc(struct omap_hwmod *oh) oh 1358 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc) oh 1361 arch/arm/mach-omap2/omap_hwmod.c v = oh->_sysc_cache; oh 1362 arch/arm/mach-omap2/omap_hwmod.c sf = oh->class->sysc->sysc_flags; oh 1365 arch/arm/mach-omap2/omap_hwmod.c _set_slave_idlemode(oh, HWMOD_IDLEMODE_FORCE, &v); oh 1368 arch/arm/mach-omap2/omap_hwmod.c _set_master_standbymode(oh, HWMOD_IDLEMODE_FORCE, &v); oh 1371 arch/arm/mach-omap2/omap_hwmod.c _set_module_autoidle(oh, 1, &v); oh 1373 arch/arm/mach-omap2/omap_hwmod.c _write_sysconfig(v, oh); oh 1384 arch/arm/mach-omap2/omap_hwmod.c struct omap_hwmod *oh, *temp_oh; oh 1386 arch/arm/mach-omap2/omap_hwmod.c oh = NULL; oh 1390 arch/arm/mach-omap2/omap_hwmod.c oh = temp_oh; oh 1395 arch/arm/mach-omap2/omap_hwmod.c return oh; oh 1406 arch/arm/mach-omap2/omap_hwmod.c static int _init_clkdm(struct omap_hwmod *oh) oh 1408 arch/arm/mach-omap2/omap_hwmod.c if (!oh->clkdm_name) { oh 1409 arch/arm/mach-omap2/omap_hwmod.c pr_debug("omap_hwmod: %s: missing clockdomain\n", oh->name); oh 1413 arch/arm/mach-omap2/omap_hwmod.c oh->clkdm = clkdm_lookup(oh->clkdm_name); oh 1414 arch/arm/mach-omap2/omap_hwmod.c if (!oh->clkdm) { oh 1416 arch/arm/mach-omap2/omap_hwmod.c oh->name, oh->clkdm_name); oh 1421 arch/arm/mach-omap2/omap_hwmod.c oh->name, oh->clkdm_name); oh 1436 arch/arm/mach-omap2/omap_hwmod.c static int _init_clocks(struct omap_hwmod *oh, struct device_node *np) oh 1440 arch/arm/mach-omap2/omap_hwmod.c if (oh->_state != _HWMOD_STATE_REGISTERED) oh 1443 arch/arm/mach-omap2/omap_hwmod.c pr_debug("omap_hwmod: %s: looking up clocks\n", oh->name); oh 1446 arch/arm/mach-omap2/omap_hwmod.c ret |= soc_ops.init_clkdm(oh); oh 1448 arch/arm/mach-omap2/omap_hwmod.c ret |= _init_main_clk(oh); oh 1449 arch/arm/mach-omap2/omap_hwmod.c ret |= _init_interface_clks(oh); oh 1450 arch/arm/mach-omap2/omap_hwmod.c ret |= _init_opt_clks(oh); oh 1453 arch/arm/mach-omap2/omap_hwmod.c oh->_state = _HWMOD_STATE_CLKS_INITED; oh 1455 arch/arm/mach-omap2/omap_hwmod.c pr_warn("omap_hwmod: %s: cannot _init_clocks\n", oh->name); oh 1469 arch/arm/mach-omap2/omap_hwmod.c static int _lookup_hardreset(struct omap_hwmod *oh, const char *name, oh 1474 arch/arm/mach-omap2/omap_hwmod.c for (i = 0; i < oh->rst_lines_cnt; i++) { oh 1475 arch/arm/mach-omap2/omap_hwmod.c const char *rst_line = oh->rst_lines[i].name; oh 1477 arch/arm/mach-omap2/omap_hwmod.c ohri->rst_shift = oh->rst_lines[i].rst_shift; oh 1478 arch/arm/mach-omap2/omap_hwmod.c ohri->st_shift = oh->rst_lines[i].st_shift; oh 1480 arch/arm/mach-omap2/omap_hwmod.c oh->name, __func__, rst_line, ohri->rst_shift, oh 1503 arch/arm/mach-omap2/omap_hwmod.c static int _assert_hardreset(struct omap_hwmod *oh, const char *name) oh 1508 arch/arm/mach-omap2/omap_hwmod.c if (!oh) oh 1514 arch/arm/mach-omap2/omap_hwmod.c ret = _lookup_hardreset(oh, name, &ohri); oh 1518 arch/arm/mach-omap2/omap_hwmod.c ret = soc_ops.assert_hardreset(oh, &ohri); oh 1536 arch/arm/mach-omap2/omap_hwmod.c static int _deassert_hardreset(struct omap_hwmod *oh, const char *name) oh 1541 arch/arm/mach-omap2/omap_hwmod.c if (!oh) oh 1547 arch/arm/mach-omap2/omap_hwmod.c ret = _lookup_hardreset(oh, name, &ohri); oh 1551 arch/arm/mach-omap2/omap_hwmod.c if (oh->clkdm) { oh 1557 arch/arm/mach-omap2/omap_hwmod.c clkdm_deny_idle(oh->clkdm); oh 1558 arch/arm/mach-omap2/omap_hwmod.c ret = clkdm_hwmod_enable(oh->clkdm, oh); oh 1561 arch/arm/mach-omap2/omap_hwmod.c oh->name, oh->clkdm->name, ret); oh 1566 arch/arm/mach-omap2/omap_hwmod.c _enable_clocks(oh); oh 1568 arch/arm/mach-omap2/omap_hwmod.c soc_ops.enable_module(oh); oh 1570 arch/arm/mach-omap2/omap_hwmod.c ret = soc_ops.deassert_hardreset(oh, &ohri); oh 1573 arch/arm/mach-omap2/omap_hwmod.c soc_ops.disable_module(oh); oh 1574 arch/arm/mach-omap2/omap_hwmod.c _disable_clocks(oh); oh 1577 arch/arm/mach-omap2/omap_hwmod.c pr_warn("omap_hwmod: %s: failed to hardreset\n", oh->name); oh 1579 arch/arm/mach-omap2/omap_hwmod.c if (oh->clkdm) { oh 1584 arch/arm/mach-omap2/omap_hwmod.c clkdm_allow_idle(oh->clkdm); oh 1586 arch/arm/mach-omap2/omap_hwmod.c clkdm_hwmod_disable(oh->clkdm, oh); oh 1604 arch/arm/mach-omap2/omap_hwmod.c static int _read_hardreset(struct omap_hwmod *oh, const char *name) oh 1609 arch/arm/mach-omap2/omap_hwmod.c if (!oh) oh 1615 arch/arm/mach-omap2/omap_hwmod.c ret = _lookup_hardreset(oh, name, &ohri); oh 1619 arch/arm/mach-omap2/omap_hwmod.c return soc_ops.is_hardreset_asserted(oh, &ohri); oh 1632 arch/arm/mach-omap2/omap_hwmod.c static bool _are_all_hardreset_lines_asserted(struct omap_hwmod *oh) oh 1636 arch/arm/mach-omap2/omap_hwmod.c if (oh->rst_lines_cnt == 0) oh 1639 arch/arm/mach-omap2/omap_hwmod.c for (i = 0; i < oh->rst_lines_cnt; i++) oh 1640 arch/arm/mach-omap2/omap_hwmod.c if (_read_hardreset(oh, oh->rst_lines[i].name) > 0) oh 1643 arch/arm/mach-omap2/omap_hwmod.c if (oh->rst_lines_cnt == rst_cnt) oh 1660 arch/arm/mach-omap2/omap_hwmod.c static bool _are_any_hardreset_lines_asserted(struct omap_hwmod *oh) oh 1665 arch/arm/mach-omap2/omap_hwmod.c for (i = 0; i < oh->rst_lines_cnt && rst_cnt == 0; i++) oh 1666 arch/arm/mach-omap2/omap_hwmod.c if (_read_hardreset(oh, oh->rst_lines[i].name) > 0) oh 1679 arch/arm/mach-omap2/omap_hwmod.c static int _omap4_disable_module(struct omap_hwmod *oh) oh 1683 arch/arm/mach-omap2/omap_hwmod.c if (!oh->clkdm || !oh->prcm.omap4.modulemode || oh 1684 arch/arm/mach-omap2/omap_hwmod.c _omap4_clkctrl_managed_by_clkfwk(oh)) oh 1691 arch/arm/mach-omap2/omap_hwmod.c if (_are_any_hardreset_lines_asserted(oh)) oh 1694 arch/arm/mach-omap2/omap_hwmod.c pr_debug("omap_hwmod: %s: %s\n", oh->name, __func__); oh 1696 arch/arm/mach-omap2/omap_hwmod.c omap_cm_module_disable(oh->clkdm->prcm_partition, oh->clkdm->cm_inst, oh 1697 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap4.clkctrl_offs); oh 1699 arch/arm/mach-omap2/omap_hwmod.c v = _omap4_wait_target_disable(oh); oh 1702 arch/arm/mach-omap2/omap_hwmod.c oh->name); oh 1723 arch/arm/mach-omap2/omap_hwmod.c static int _ocp_softreset(struct omap_hwmod *oh) oh 1729 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc || oh 1730 arch/arm/mach-omap2/omap_hwmod.c !(oh->class->sysc->sysc_flags & SYSC_HAS_SOFTRESET)) oh 1734 arch/arm/mach-omap2/omap_hwmod.c if (oh->_state != _HWMOD_STATE_ENABLED) { oh 1736 arch/arm/mach-omap2/omap_hwmod.c oh->name); oh 1741 arch/arm/mach-omap2/omap_hwmod.c if (oh->flags & HWMOD_CONTROL_OPT_CLKS_IN_RESET) oh 1742 arch/arm/mach-omap2/omap_hwmod.c _enable_optional_clocks(oh); oh 1744 arch/arm/mach-omap2/omap_hwmod.c pr_debug("omap_hwmod: %s: resetting via OCP SOFTRESET\n", oh->name); oh 1746 arch/arm/mach-omap2/omap_hwmod.c v = oh->_sysc_cache; oh 1747 arch/arm/mach-omap2/omap_hwmod.c ret = _set_softreset(oh, &v); oh 1751 arch/arm/mach-omap2/omap_hwmod.c _write_sysconfig(v, oh); oh 1753 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->sysc->srst_udelay) oh 1754 arch/arm/mach-omap2/omap_hwmod.c udelay(oh->class->sysc->srst_udelay); oh 1756 arch/arm/mach-omap2/omap_hwmod.c c = _wait_softreset_complete(oh); oh 1759 arch/arm/mach-omap2/omap_hwmod.c oh->name, MAX_MODULE_SOFTRESET_WAIT); oh 1763 arch/arm/mach-omap2/omap_hwmod.c pr_debug("omap_hwmod: %s: softreset in %d usec\n", oh->name, c); oh 1766 arch/arm/mach-omap2/omap_hwmod.c ret = _clear_softreset(oh, &v); oh 1770 arch/arm/mach-omap2/omap_hwmod.c _write_sysconfig(v, oh); oh 1778 arch/arm/mach-omap2/omap_hwmod.c if (oh->flags & HWMOD_CONTROL_OPT_CLKS_IN_RESET) oh 1779 arch/arm/mach-omap2/omap_hwmod.c _disable_optional_clocks(oh); oh 1817 arch/arm/mach-omap2/omap_hwmod.c static int _reset(struct omap_hwmod *oh) oh 1821 arch/arm/mach-omap2/omap_hwmod.c pr_debug("omap_hwmod: %s: resetting\n", oh->name); oh 1823 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->reset) { oh 1824 arch/arm/mach-omap2/omap_hwmod.c r = oh->class->reset(oh); oh 1826 arch/arm/mach-omap2/omap_hwmod.c if (oh->rst_lines_cnt > 0) { oh 1827 arch/arm/mach-omap2/omap_hwmod.c for (i = 0; i < oh->rst_lines_cnt; i++) oh 1828 arch/arm/mach-omap2/omap_hwmod.c _assert_hardreset(oh, oh->rst_lines[i].name); oh 1831 arch/arm/mach-omap2/omap_hwmod.c r = _ocp_softreset(oh); oh 1837 arch/arm/mach-omap2/omap_hwmod.c _set_dmadisable(oh); oh 1844 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->sysc) { oh 1845 arch/arm/mach-omap2/omap_hwmod.c _update_sysc_cache(oh); oh 1846 arch/arm/mach-omap2/omap_hwmod.c _enable_sysc(oh); oh 1861 arch/arm/mach-omap2/omap_hwmod.c static void _omap4_update_context_lost(struct omap_hwmod *oh) oh 1863 arch/arm/mach-omap2/omap_hwmod.c if (oh->prcm.omap4.flags & HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT) oh 1866 arch/arm/mach-omap2/omap_hwmod.c if (!prm_was_any_context_lost_old(oh->clkdm->pwrdm.ptr->prcm_partition, oh 1867 arch/arm/mach-omap2/omap_hwmod.c oh->clkdm->pwrdm.ptr->prcm_offs, oh 1868 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap4.context_offs)) oh 1871 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap4.context_lost_counter++; oh 1872 arch/arm/mach-omap2/omap_hwmod.c prm_clear_context_loss_flags_old(oh->clkdm->pwrdm.ptr->prcm_partition, oh 1873 arch/arm/mach-omap2/omap_hwmod.c oh->clkdm->pwrdm.ptr->prcm_offs, oh 1874 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap4.context_offs); oh 1883 arch/arm/mach-omap2/omap_hwmod.c static int _omap4_get_context_lost(struct omap_hwmod *oh) oh 1885 arch/arm/mach-omap2/omap_hwmod.c return oh->prcm.omap4.context_lost_counter; oh 1897 arch/arm/mach-omap2/omap_hwmod.c static int _enable_preprogram(struct omap_hwmod *oh) oh 1899 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->enable_preprogram) oh 1902 arch/arm/mach-omap2/omap_hwmod.c return oh->class->enable_preprogram(oh); oh 1913 arch/arm/mach-omap2/omap_hwmod.c static int _enable(struct omap_hwmod *oh) oh 1917 arch/arm/mach-omap2/omap_hwmod.c pr_debug("omap_hwmod: %s: enabling\n", oh->name); oh 1923 arch/arm/mach-omap2/omap_hwmod.c if (oh->_int_flags & _HWMOD_SKIP_ENABLE) { oh 1924 arch/arm/mach-omap2/omap_hwmod.c oh->_int_flags &= ~_HWMOD_SKIP_ENABLE; oh 1928 arch/arm/mach-omap2/omap_hwmod.c if (oh->_state != _HWMOD_STATE_INITIALIZED && oh 1929 arch/arm/mach-omap2/omap_hwmod.c oh->_state != _HWMOD_STATE_IDLE && oh 1930 arch/arm/mach-omap2/omap_hwmod.c oh->_state != _HWMOD_STATE_DISABLED) { oh 1932 arch/arm/mach-omap2/omap_hwmod.c oh->name); oh 1945 arch/arm/mach-omap2/omap_hwmod.c if (_are_all_hardreset_lines_asserted(oh)) oh 1948 arch/arm/mach-omap2/omap_hwmod.c _add_initiator_dep(oh, mpu_oh); oh 1950 arch/arm/mach-omap2/omap_hwmod.c if (oh->clkdm) { oh 1956 arch/arm/mach-omap2/omap_hwmod.c clkdm_deny_idle(oh->clkdm); oh 1957 arch/arm/mach-omap2/omap_hwmod.c r = clkdm_hwmod_enable(oh->clkdm, oh); oh 1960 arch/arm/mach-omap2/omap_hwmod.c oh->name, oh->clkdm->name, r); oh 1965 arch/arm/mach-omap2/omap_hwmod.c _enable_clocks(oh); oh 1967 arch/arm/mach-omap2/omap_hwmod.c soc_ops.enable_module(oh); oh 1968 arch/arm/mach-omap2/omap_hwmod.c if (oh->flags & HWMOD_BLOCK_WFI) oh 1972 arch/arm/mach-omap2/omap_hwmod.c soc_ops.update_context_lost(oh); oh 1974 arch/arm/mach-omap2/omap_hwmod.c r = (soc_ops.wait_target_ready) ? soc_ops.wait_target_ready(oh) : oh 1976 arch/arm/mach-omap2/omap_hwmod.c if (oh->clkdm && !(oh->flags & HWMOD_CLKDM_NOAUTO)) oh 1977 arch/arm/mach-omap2/omap_hwmod.c clkdm_allow_idle(oh->clkdm); oh 1980 arch/arm/mach-omap2/omap_hwmod.c oh->_state = _HWMOD_STATE_ENABLED; oh 1983 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->sysc) { oh 1984 arch/arm/mach-omap2/omap_hwmod.c if (!(oh->_int_flags & _HWMOD_SYSCONFIG_LOADED)) oh 1985 arch/arm/mach-omap2/omap_hwmod.c _update_sysc_cache(oh); oh 1986 arch/arm/mach-omap2/omap_hwmod.c _enable_sysc(oh); oh 1988 arch/arm/mach-omap2/omap_hwmod.c r = _enable_preprogram(oh); oh 1991 arch/arm/mach-omap2/omap_hwmod.c soc_ops.disable_module(oh); oh 1992 arch/arm/mach-omap2/omap_hwmod.c _disable_clocks(oh); oh 1994 arch/arm/mach-omap2/omap_hwmod.c oh->name, r); oh 1996 arch/arm/mach-omap2/omap_hwmod.c if (oh->clkdm) oh 1997 arch/arm/mach-omap2/omap_hwmod.c clkdm_hwmod_disable(oh->clkdm, oh); oh 2011 arch/arm/mach-omap2/omap_hwmod.c static int _idle(struct omap_hwmod *oh) oh 2013 arch/arm/mach-omap2/omap_hwmod.c if (oh->flags & HWMOD_NO_IDLE) { oh 2014 arch/arm/mach-omap2/omap_hwmod.c oh->_int_flags |= _HWMOD_SKIP_ENABLE; oh 2018 arch/arm/mach-omap2/omap_hwmod.c pr_debug("omap_hwmod: %s: idling\n", oh->name); oh 2020 arch/arm/mach-omap2/omap_hwmod.c if (_are_all_hardreset_lines_asserted(oh)) oh 2023 arch/arm/mach-omap2/omap_hwmod.c if (oh->_state != _HWMOD_STATE_ENABLED) { oh 2025 arch/arm/mach-omap2/omap_hwmod.c oh->name); oh 2029 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->sysc) oh 2030 arch/arm/mach-omap2/omap_hwmod.c _idle_sysc(oh); oh 2031 arch/arm/mach-omap2/omap_hwmod.c _del_initiator_dep(oh, mpu_oh); oh 2038 arch/arm/mach-omap2/omap_hwmod.c if (oh->clkdm && !(oh->flags & HWMOD_CLKDM_NOAUTO)) oh 2039 arch/arm/mach-omap2/omap_hwmod.c clkdm_deny_idle(oh->clkdm); oh 2041 arch/arm/mach-omap2/omap_hwmod.c if (oh->flags & HWMOD_BLOCK_WFI) oh 2044 arch/arm/mach-omap2/omap_hwmod.c soc_ops.disable_module(oh); oh 2052 arch/arm/mach-omap2/omap_hwmod.c _disable_clocks(oh); oh 2053 arch/arm/mach-omap2/omap_hwmod.c if (oh->clkdm) { oh 2054 arch/arm/mach-omap2/omap_hwmod.c clkdm_allow_idle(oh->clkdm); oh 2055 arch/arm/mach-omap2/omap_hwmod.c clkdm_hwmod_disable(oh->clkdm, oh); oh 2058 arch/arm/mach-omap2/omap_hwmod.c oh->_state = _HWMOD_STATE_IDLE; oh 2072 arch/arm/mach-omap2/omap_hwmod.c static int _shutdown(struct omap_hwmod *oh) oh 2077 arch/arm/mach-omap2/omap_hwmod.c if (_are_all_hardreset_lines_asserted(oh)) oh 2080 arch/arm/mach-omap2/omap_hwmod.c if (oh->_state != _HWMOD_STATE_IDLE && oh 2081 arch/arm/mach-omap2/omap_hwmod.c oh->_state != _HWMOD_STATE_ENABLED) { oh 2083 arch/arm/mach-omap2/omap_hwmod.c oh->name); oh 2087 arch/arm/mach-omap2/omap_hwmod.c pr_debug("omap_hwmod: %s: disabling\n", oh->name); oh 2089 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->pre_shutdown) { oh 2090 arch/arm/mach-omap2/omap_hwmod.c prev_state = oh->_state; oh 2091 arch/arm/mach-omap2/omap_hwmod.c if (oh->_state == _HWMOD_STATE_IDLE) oh 2092 arch/arm/mach-omap2/omap_hwmod.c _enable(oh); oh 2093 arch/arm/mach-omap2/omap_hwmod.c ret = oh->class->pre_shutdown(oh); oh 2096 arch/arm/mach-omap2/omap_hwmod.c _idle(oh); oh 2101 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->sysc) { oh 2102 arch/arm/mach-omap2/omap_hwmod.c if (oh->_state == _HWMOD_STATE_IDLE) oh 2103 arch/arm/mach-omap2/omap_hwmod.c _enable(oh); oh 2104 arch/arm/mach-omap2/omap_hwmod.c _shutdown_sysc(oh); oh 2108 arch/arm/mach-omap2/omap_hwmod.c if (oh->_state == _HWMOD_STATE_ENABLED) { oh 2109 arch/arm/mach-omap2/omap_hwmod.c _del_initiator_dep(oh, mpu_oh); oh 2111 arch/arm/mach-omap2/omap_hwmod.c if (oh->flags & HWMOD_BLOCK_WFI) oh 2114 arch/arm/mach-omap2/omap_hwmod.c soc_ops.disable_module(oh); oh 2115 arch/arm/mach-omap2/omap_hwmod.c _disable_clocks(oh); oh 2116 arch/arm/mach-omap2/omap_hwmod.c if (oh->clkdm) oh 2117 arch/arm/mach-omap2/omap_hwmod.c clkdm_hwmod_disable(oh->clkdm, oh); oh 2121 arch/arm/mach-omap2/omap_hwmod.c for (i = 0; i < oh->rst_lines_cnt; i++) oh 2122 arch/arm/mach-omap2/omap_hwmod.c _assert_hardreset(oh, oh->rst_lines[i].name); oh 2124 arch/arm/mach-omap2/omap_hwmod.c oh->_state = _HWMOD_STATE_DISABLED; oh 2130 arch/arm/mach-omap2/omap_hwmod.c struct omap_hwmod *oh) oh 2144 arch/arm/mach-omap2/omap_hwmod.c if (!strcmp(p, oh->name)) { oh 2146 arch/arm/mach-omap2/omap_hwmod.c np, i, oh->name); oh 2166 arch/arm/mach-omap2/omap_hwmod.c struct omap_hwmod *oh, oh 2173 arch/arm/mach-omap2/omap_hwmod.c res = of_dev_find_hwmod(np, oh); oh 2184 arch/arm/mach-omap2/omap_hwmod.c res = of_dev_hwmod_lookup(np0, oh, &i, &fc); oh 2212 arch/arm/mach-omap2/omap_hwmod.c static void omap_hwmod_fix_mpu_rt_idx(struct omap_hwmod *oh, oh 2223 arch/arm/mach-omap2/omap_hwmod.c error = of_address_to_resource(child, oh->mpu_rt_idx, res); oh 2240 arch/arm/mach-omap2/omap_hwmod.c int omap_hwmod_parse_module_range(struct omap_hwmod *oh, oh 2280 arch/arm/mach-omap2/omap_hwmod.c oh->name, np); oh 2289 arch/arm/mach-omap2/omap_hwmod.c oh->name, np, base, size); oh 2291 arch/arm/mach-omap2/omap_hwmod.c if (oh && oh->mpu_rt_idx) { oh 2292 arch/arm/mach-omap2/omap_hwmod.c omap_hwmod_fix_mpu_rt_idx(oh, np, res); oh 2321 arch/arm/mach-omap2/omap_hwmod.c static int __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data, oh 2328 arch/arm/mach-omap2/omap_hwmod.c if (!oh) oh 2331 arch/arm/mach-omap2/omap_hwmod.c _save_mpu_port_index(oh); oh 2334 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc) oh 2338 arch/arm/mach-omap2/omap_hwmod.c if (oh->_int_flags & _HWMOD_NO_MPU_PORT) oh 2342 arch/arm/mach-omap2/omap_hwmod.c pr_err("omap_hwmod: %s: no dt node\n", oh->name); oh 2347 arch/arm/mach-omap2/omap_hwmod.c error = omap_hwmod_parse_module_range(oh, np, &res); oh 2353 arch/arm/mach-omap2/omap_hwmod.c va_start = of_iomap(np, index + oh->mpu_rt_idx); oh 2356 arch/arm/mach-omap2/omap_hwmod.c oh->name, index, np); oh 2361 arch/arm/mach-omap2/omap_hwmod.c oh->name, va_start); oh 2363 arch/arm/mach-omap2/omap_hwmod.c oh->_mpu_rt_va = va_start; oh 2367 arch/arm/mach-omap2/omap_hwmod.c static void __init parse_module_flags(struct omap_hwmod *oh, oh 2371 arch/arm/mach-omap2/omap_hwmod.c oh->flags |= HWMOD_INIT_NO_RESET; oh 2373 arch/arm/mach-omap2/omap_hwmod.c oh->flags |= HWMOD_INIT_NO_IDLE; oh 2375 arch/arm/mach-omap2/omap_hwmod.c oh->flags |= HWMOD_NO_IDLE; oh 2391 arch/arm/mach-omap2/omap_hwmod.c static int __init _init(struct omap_hwmod *oh, void *data) oh 2397 arch/arm/mach-omap2/omap_hwmod.c if (oh->_state != _HWMOD_STATE_REGISTERED) oh 2404 arch/arm/mach-omap2/omap_hwmod.c r = of_dev_hwmod_lookup(bus, oh, &index, &np); oh 2406 arch/arm/mach-omap2/omap_hwmod.c pr_debug("omap_hwmod: %s missing dt data\n", oh->name); oh 2409 arch/arm/mach-omap2/omap_hwmod.c oh->name, np); oh 2411 arch/arm/mach-omap2/omap_hwmod.c r = _init_mpu_rt_base(oh, NULL, index, np); oh 2414 arch/arm/mach-omap2/omap_hwmod.c oh->name); oh 2418 arch/arm/mach-omap2/omap_hwmod.c r = _init_clocks(oh, np); oh 2420 arch/arm/mach-omap2/omap_hwmod.c WARN(1, "omap_hwmod: %s: couldn't init clocks\n", oh->name); oh 2427 arch/arm/mach-omap2/omap_hwmod.c parse_module_flags(oh, np); oh 2430 arch/arm/mach-omap2/omap_hwmod.c parse_module_flags(oh, child); oh 2433 arch/arm/mach-omap2/omap_hwmod.c oh->_state = _HWMOD_STATE_INITIALIZED; oh 2446 arch/arm/mach-omap2/omap_hwmod.c static void _setup_iclk_autoidle(struct omap_hwmod *oh) oh 2450 arch/arm/mach-omap2/omap_hwmod.c if (oh->_state != _HWMOD_STATE_INITIALIZED) oh 2453 arch/arm/mach-omap2/omap_hwmod.c list_for_each_entry(os, &oh->slave_ports, node) { oh 2481 arch/arm/mach-omap2/omap_hwmod.c static int _setup_reset(struct omap_hwmod *oh) oh 2485 arch/arm/mach-omap2/omap_hwmod.c if (oh->_state != _HWMOD_STATE_INITIALIZED) oh 2488 arch/arm/mach-omap2/omap_hwmod.c if (oh->flags & HWMOD_EXT_OPT_MAIN_CLK) oh 2491 arch/arm/mach-omap2/omap_hwmod.c if (oh->rst_lines_cnt == 0) { oh 2492 arch/arm/mach-omap2/omap_hwmod.c r = _enable(oh); oh 2495 arch/arm/mach-omap2/omap_hwmod.c oh->name, oh->_state); oh 2500 arch/arm/mach-omap2/omap_hwmod.c if (!(oh->flags & HWMOD_INIT_NO_RESET)) oh 2501 arch/arm/mach-omap2/omap_hwmod.c r = _reset(oh); oh 2542 arch/arm/mach-omap2/omap_hwmod.c static void _setup_postsetup(struct omap_hwmod *oh) oh 2546 arch/arm/mach-omap2/omap_hwmod.c if (oh->rst_lines_cnt > 0) oh 2549 arch/arm/mach-omap2/omap_hwmod.c postsetup_state = oh->_postsetup_state; oh 2557 arch/arm/mach-omap2/omap_hwmod.c if ((oh->flags & (HWMOD_INIT_NO_IDLE | HWMOD_NO_IDLE)) && oh 2559 arch/arm/mach-omap2/omap_hwmod.c oh->_int_flags |= _HWMOD_SKIP_ENABLE; oh 2564 arch/arm/mach-omap2/omap_hwmod.c _idle(oh); oh 2566 arch/arm/mach-omap2/omap_hwmod.c _shutdown(oh); oh 2569 arch/arm/mach-omap2/omap_hwmod.c oh->name, postsetup_state); oh 2590 arch/arm/mach-omap2/omap_hwmod.c static int _setup(struct omap_hwmod *oh, void *data) oh 2592 arch/arm/mach-omap2/omap_hwmod.c if (oh->_state != _HWMOD_STATE_INITIALIZED) oh 2595 arch/arm/mach-omap2/omap_hwmod.c if (oh->parent_hwmod) { oh 2598 arch/arm/mach-omap2/omap_hwmod.c r = _enable(oh->parent_hwmod); oh 2600 arch/arm/mach-omap2/omap_hwmod.c oh->name, oh->parent_hwmod->name); oh 2603 arch/arm/mach-omap2/omap_hwmod.c _setup_iclk_autoidle(oh); oh 2605 arch/arm/mach-omap2/omap_hwmod.c if (!_setup_reset(oh)) oh 2606 arch/arm/mach-omap2/omap_hwmod.c _setup_postsetup(oh); oh 2608 arch/arm/mach-omap2/omap_hwmod.c if (oh->parent_hwmod) { oh 2611 arch/arm/mach-omap2/omap_hwmod.c postsetup_state = oh->parent_hwmod->_postsetup_state; oh 2614 arch/arm/mach-omap2/omap_hwmod.c _idle(oh->parent_hwmod); oh 2616 arch/arm/mach-omap2/omap_hwmod.c _shutdown(oh->parent_hwmod); oh 2619 arch/arm/mach-omap2/omap_hwmod.c oh->parent_hwmod->name, postsetup_state); oh 2642 arch/arm/mach-omap2/omap_hwmod.c static int _register(struct omap_hwmod *oh) oh 2644 arch/arm/mach-omap2/omap_hwmod.c if (!oh || !oh->name || !oh->class || !oh->class->name || oh 2645 arch/arm/mach-omap2/omap_hwmod.c (oh->_state != _HWMOD_STATE_UNKNOWN)) oh 2648 arch/arm/mach-omap2/omap_hwmod.c pr_debug("omap_hwmod: %s: registering\n", oh->name); oh 2650 arch/arm/mach-omap2/omap_hwmod.c if (_lookup(oh->name)) oh 2653 arch/arm/mach-omap2/omap_hwmod.c list_add_tail(&oh->node, &omap_hwmod_list); oh 2655 arch/arm/mach-omap2/omap_hwmod.c INIT_LIST_HEAD(&oh->slave_ports); oh 2656 arch/arm/mach-omap2/omap_hwmod.c spin_lock_init(&oh->_lock); oh 2657 arch/arm/mach-omap2/omap_hwmod.c lockdep_set_class(&oh->_lock, &oh->hwmod_key); oh 2659 arch/arm/mach-omap2/omap_hwmod.c oh->_state = _HWMOD_STATE_REGISTERED; oh 2665 arch/arm/mach-omap2/omap_hwmod.c if (!strcmp(oh->name, MPU_INITIATOR_NAME)) oh 2666 arch/arm/mach-omap2/omap_hwmod.c mpu_oh = oh; oh 2744 arch/arm/mach-omap2/omap_hwmod.c static int _omap2xxx_3xxx_wait_target_ready(struct omap_hwmod *oh) oh 2746 arch/arm/mach-omap2/omap_hwmod.c if (!oh) oh 2749 arch/arm/mach-omap2/omap_hwmod.c if (oh->flags & HWMOD_NO_IDLEST) oh 2752 arch/arm/mach-omap2/omap_hwmod.c if (!_find_mpu_rt_port(oh)) oh 2757 arch/arm/mach-omap2/omap_hwmod.c return omap_cm_wait_module_ready(0, oh->prcm.omap2.module_offs, oh 2758 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap2.idlest_reg_id, oh 2759 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap2.idlest_idle_bit); oh 2771 arch/arm/mach-omap2/omap_hwmod.c static int _omap4_wait_target_ready(struct omap_hwmod *oh) oh 2773 arch/arm/mach-omap2/omap_hwmod.c if (!oh) oh 2776 arch/arm/mach-omap2/omap_hwmod.c if (oh->flags & HWMOD_NO_IDLEST || !oh->clkdm) oh 2779 arch/arm/mach-omap2/omap_hwmod.c if (!_find_mpu_rt_port(oh)) oh 2782 arch/arm/mach-omap2/omap_hwmod.c if (_omap4_clkctrl_managed_by_clkfwk(oh)) oh 2785 arch/arm/mach-omap2/omap_hwmod.c if (!_omap4_has_clkctrl_clock(oh)) oh 2790 arch/arm/mach-omap2/omap_hwmod.c return omap_cm_wait_module_ready(oh->clkdm->prcm_partition, oh 2791 arch/arm/mach-omap2/omap_hwmod.c oh->clkdm->cm_inst, oh 2792 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap4.clkctrl_offs, 0); oh 2806 arch/arm/mach-omap2/omap_hwmod.c static int _omap2_assert_hardreset(struct omap_hwmod *oh, oh 2810 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap2.module_offs, 0); oh 2824 arch/arm/mach-omap2/omap_hwmod.c static int _omap2_deassert_hardreset(struct omap_hwmod *oh, oh 2828 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap2.module_offs, 0, 0); oh 2843 arch/arm/mach-omap2/omap_hwmod.c static int _omap2_is_hardreset_asserted(struct omap_hwmod *oh, oh 2847 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap2.module_offs, 0); oh 2862 arch/arm/mach-omap2/omap_hwmod.c static int _omap4_assert_hardreset(struct omap_hwmod *oh, oh 2865 arch/arm/mach-omap2/omap_hwmod.c if (!oh->clkdm) oh 2869 arch/arm/mach-omap2/omap_hwmod.c oh->clkdm->pwrdm.ptr->prcm_partition, oh 2870 arch/arm/mach-omap2/omap_hwmod.c oh->clkdm->pwrdm.ptr->prcm_offs, oh 2871 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap4.rstctrl_offs); oh 2886 arch/arm/mach-omap2/omap_hwmod.c static int _omap4_deassert_hardreset(struct omap_hwmod *oh, oh 2889 arch/arm/mach-omap2/omap_hwmod.c if (!oh->clkdm) oh 2894 arch/arm/mach-omap2/omap_hwmod.c oh->name, ohri->name); oh 2896 arch/arm/mach-omap2/omap_hwmod.c oh->clkdm->pwrdm.ptr->prcm_partition, oh 2897 arch/arm/mach-omap2/omap_hwmod.c oh->clkdm->pwrdm.ptr->prcm_offs, oh 2898 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap4.rstctrl_offs, oh 2899 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap4.rstctrl_offs + oh 2915 arch/arm/mach-omap2/omap_hwmod.c static int _omap4_is_hardreset_asserted(struct omap_hwmod *oh, oh 2918 arch/arm/mach-omap2/omap_hwmod.c if (!oh->clkdm) oh 2922 arch/arm/mach-omap2/omap_hwmod.c oh->clkdm->pwrdm.ptr-> oh 2924 arch/arm/mach-omap2/omap_hwmod.c oh->clkdm->pwrdm.ptr->prcm_offs, oh 2925 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap4.rstctrl_offs); oh 2936 arch/arm/mach-omap2/omap_hwmod.c static int _omap4_disable_direct_prcm(struct omap_hwmod *oh) oh 2938 arch/arm/mach-omap2/omap_hwmod.c if (!oh) oh 2941 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap4.flags |= HWMOD_OMAP4_CLKFWK_CLKCTR_CLOCK; oh 2958 arch/arm/mach-omap2/omap_hwmod.c static int _am33xx_deassert_hardreset(struct omap_hwmod *oh, oh 2962 arch/arm/mach-omap2/omap_hwmod.c oh->clkdm->pwrdm.ptr->prcm_partition, oh 2963 arch/arm/mach-omap2/omap_hwmod.c oh->clkdm->pwrdm.ptr->prcm_offs, oh 2964 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap4.rstctrl_offs, oh 2965 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap4.rstst_offs); oh 2970 arch/arm/mach-omap2/omap_hwmod.c u32 omap_hwmod_read(struct omap_hwmod *oh, u16 reg_offs) oh 2972 arch/arm/mach-omap2/omap_hwmod.c if (oh->flags & HWMOD_16BIT_REG) oh 2973 arch/arm/mach-omap2/omap_hwmod.c return readw_relaxed(oh->_mpu_rt_va + reg_offs); oh 2975 arch/arm/mach-omap2/omap_hwmod.c return readl_relaxed(oh->_mpu_rt_va + reg_offs); oh 2978 arch/arm/mach-omap2/omap_hwmod.c void omap_hwmod_write(u32 v, struct omap_hwmod *oh, u16 reg_offs) oh 2980 arch/arm/mach-omap2/omap_hwmod.c if (oh->flags & HWMOD_16BIT_REG) oh 2981 arch/arm/mach-omap2/omap_hwmod.c writew_relaxed(v, oh->_mpu_rt_va + reg_offs); oh 2983 arch/arm/mach-omap2/omap_hwmod.c writel_relaxed(v, oh->_mpu_rt_va + reg_offs); oh 2995 arch/arm/mach-omap2/omap_hwmod.c int omap_hwmod_softreset(struct omap_hwmod *oh) oh 3000 arch/arm/mach-omap2/omap_hwmod.c if (!oh || !(oh->_sysc_cache)) oh 3003 arch/arm/mach-omap2/omap_hwmod.c v = oh->_sysc_cache; oh 3004 arch/arm/mach-omap2/omap_hwmod.c ret = _set_softreset(oh, &v); oh 3007 arch/arm/mach-omap2/omap_hwmod.c _write_sysconfig(v, oh); oh 3009 arch/arm/mach-omap2/omap_hwmod.c ret = _clear_softreset(oh, &v); oh 3012 arch/arm/mach-omap2/omap_hwmod.c _write_sysconfig(v, oh); oh 3027 arch/arm/mach-omap2/omap_hwmod.c struct omap_hwmod *oh; oh 3032 arch/arm/mach-omap2/omap_hwmod.c oh = _lookup(name); oh 3034 arch/arm/mach-omap2/omap_hwmod.c return oh; oh 3049 arch/arm/mach-omap2/omap_hwmod.c int omap_hwmod_for_each(int (*fn)(struct omap_hwmod *oh, void *data), oh 3112 arch/arm/mach-omap2/omap_hwmod.c static void __init _ensure_mpu_hwmod_is_setup(struct omap_hwmod *oh) oh 3117 arch/arm/mach-omap2/omap_hwmod.c else if (mpu_oh->_state == _HWMOD_STATE_REGISTERED && oh != mpu_oh) oh 3134 arch/arm/mach-omap2/omap_hwmod.c struct omap_hwmod *oh; oh 3138 arch/arm/mach-omap2/omap_hwmod.c oh = _lookup(oh_name); oh 3139 arch/arm/mach-omap2/omap_hwmod.c if (!oh) { oh 3144 arch/arm/mach-omap2/omap_hwmod.c _ensure_mpu_hwmod_is_setup(oh); oh 3146 arch/arm/mach-omap2/omap_hwmod.c _init(oh, NULL); oh 3147 arch/arm/mach-omap2/omap_hwmod.c _setup(oh, NULL); oh 3400 arch/arm/mach-omap2/omap_hwmod.c struct omap_hwmod *oh, oh 3407 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class->sysc) oh 3410 arch/arm/mach-omap2/omap_hwmod.c if (sysc_fields != oh->class->sysc->sysc_fields) oh 3412 arch/arm/mach-omap2/omap_hwmod.c oh->class->sysc->sysc_fields); oh 3414 arch/arm/mach-omap2/omap_hwmod.c if (rev_offs != oh->class->sysc->rev_offs) oh 3416 arch/arm/mach-omap2/omap_hwmod.c oh->class->sysc->rev_offs); oh 3417 arch/arm/mach-omap2/omap_hwmod.c if (sysc_offs != oh->class->sysc->sysc_offs) oh 3419 arch/arm/mach-omap2/omap_hwmod.c oh->class->sysc->sysc_offs); oh 3420 arch/arm/mach-omap2/omap_hwmod.c if (syss_offs != oh->class->sysc->syss_offs) oh 3422 arch/arm/mach-omap2/omap_hwmod.c oh->class->sysc->syss_offs); oh 3424 arch/arm/mach-omap2/omap_hwmod.c if (sysc_flags != oh->class->sysc->sysc_flags) oh 3426 arch/arm/mach-omap2/omap_hwmod.c oh->class->sysc->sysc_flags); oh 3428 arch/arm/mach-omap2/omap_hwmod.c if (idlemodes != oh->class->sysc->idlemodes) oh 3430 arch/arm/mach-omap2/omap_hwmod.c oh->class->sysc->idlemodes); oh 3432 arch/arm/mach-omap2/omap_hwmod.c if (data->cfg->srst_udelay != oh->class->sysc->srst_udelay) oh 3435 arch/arm/mach-omap2/omap_hwmod.c oh->class->sysc->srst_udelay); oh 3454 arch/arm/mach-omap2/omap_hwmod.c static int omap_hwmod_allocate_module(struct device *dev, struct omap_hwmod *oh, oh 3480 arch/arm/mach-omap2/omap_hwmod.c if (!oh->_mpu_rt_va) { oh 3491 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->name && strcmp(oh->class->name, data->name)) { oh 3492 arch/arm/mach-omap2/omap_hwmod.c class = kmemdup(oh->class, sizeof(*oh->class), GFP_KERNEL); oh 3497 arch/arm/mach-omap2/omap_hwmod.c if (list_empty(&oh->slave_ports)) { oh 3507 arch/arm/mach-omap2/omap_hwmod.c oi->slave = oh; oh 3511 arch/arm/mach-omap2/omap_hwmod.c spin_lock_irqsave(&oh->_lock, flags); oh 3513 arch/arm/mach-omap2/omap_hwmod.c oh->_mpu_rt_va = regs; oh 3515 arch/arm/mach-omap2/omap_hwmod.c oh->class = class; oh 3516 arch/arm/mach-omap2/omap_hwmod.c oh->class->sysc = sysc; oh 3520 arch/arm/mach-omap2/omap_hwmod.c oh->clkdm = clkdm; oh 3521 arch/arm/mach-omap2/omap_hwmod.c oh->_state = _HWMOD_STATE_INITIALIZED; oh 3522 arch/arm/mach-omap2/omap_hwmod.c oh->_postsetup_state = _HWMOD_STATE_DEFAULT; oh 3523 arch/arm/mach-omap2/omap_hwmod.c _setup(oh, NULL); oh 3524 arch/arm/mach-omap2/omap_hwmod.c spin_unlock_irqrestore(&oh->_lock, flags); oh 3545 arch/arm/mach-omap2/omap_hwmod.c omap_hwmod_init_reset_quirk(struct device *dev, struct omap_hwmod *oh, oh 3556 arch/arm/mach-omap2/omap_hwmod.c oh->class->reset = quirk->reset; oh 3564 arch/arm/mach-omap2/omap_hwmod.c omap_hwmod_init_reset_quirks(struct device *dev, struct omap_hwmod *oh, oh 3568 arch/arm/mach-omap2/omap_hwmod.c omap_hwmod_init_reset_quirk(dev, oh, data, oh 3573 arch/arm/mach-omap2/omap_hwmod.c omap_hwmod_init_reset_quirk(dev, oh, data, dra7_reset_quirks, oh 3576 arch/arm/mach-omap2/omap_hwmod.c omap_hwmod_init_reset_quirk(dev, oh, data, omap_reset_quirks, oh 3590 arch/arm/mach-omap2/omap_hwmod.c struct omap_hwmod *oh; oh 3599 arch/arm/mach-omap2/omap_hwmod.c oh = _lookup(data->name); oh 3600 arch/arm/mach-omap2/omap_hwmod.c if (!oh) { oh 3601 arch/arm/mach-omap2/omap_hwmod.c oh = kzalloc(sizeof(*oh), GFP_KERNEL); oh 3602 arch/arm/mach-omap2/omap_hwmod.c if (!oh) oh 3605 arch/arm/mach-omap2/omap_hwmod.c oh->name = data->name; oh 3606 arch/arm/mach-omap2/omap_hwmod.c oh->_state = _HWMOD_STATE_UNKNOWN; oh 3607 arch/arm/mach-omap2/omap_hwmod.c lockdep_register_key(&oh->hwmod_key); oh 3610 arch/arm/mach-omap2/omap_hwmod.c oh->prcm.omap4.flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT; oh 3612 arch/arm/mach-omap2/omap_hwmod.c oh->class = kzalloc(sizeof(*oh->class), GFP_KERNEL); oh 3613 arch/arm/mach-omap2/omap_hwmod.c if (!oh->class) { oh 3614 arch/arm/mach-omap2/omap_hwmod.c kfree(oh); oh 3618 arch/arm/mach-omap2/omap_hwmod.c omap_hwmod_init_reset_quirks(dev, oh, data); oh 3620 arch/arm/mach-omap2/omap_hwmod.c oh->class->name = data->name; oh 3622 arch/arm/mach-omap2/omap_hwmod.c error = _register(oh); oh 3626 arch/arm/mach-omap2/omap_hwmod.c cookie->data = oh; oh 3646 arch/arm/mach-omap2/omap_hwmod.c oh->flags |= HWMOD_NO_IDLE; oh 3648 arch/arm/mach-omap2/omap_hwmod.c oh->flags |= HWMOD_INIT_NO_IDLE; oh 3650 arch/arm/mach-omap2/omap_hwmod.c oh->flags |= HWMOD_INIT_NO_RESET; oh 3652 arch/arm/mach-omap2/omap_hwmod.c oh->flags |= HWMOD_SET_DEFAULT_CLOCKACT; oh 3654 arch/arm/mach-omap2/omap_hwmod.c oh->flags |= HWMOD_SWSUP_SIDLE; oh 3656 arch/arm/mach-omap2/omap_hwmod.c oh->flags |= HWMOD_SWSUP_SIDLE_ACT; oh 3658 arch/arm/mach-omap2/omap_hwmod.c oh->flags |= HWMOD_SWSUP_MSTANDBY; oh 3660 arch/arm/mach-omap2/omap_hwmod.c error = omap_hwmod_check_module(dev, oh, data, sysc_fields, oh 3666 arch/arm/mach-omap2/omap_hwmod.c return omap_hwmod_allocate_module(dev, oh, data, sysc_fields, oh 3683 arch/arm/mach-omap2/omap_hwmod.c struct omap_hwmod *oh; oh 3693 arch/arm/mach-omap2/omap_hwmod.c oh = omap_hwmod_lookup(uart); oh 3694 arch/arm/mach-omap2/omap_hwmod.c if (!oh) { oh 3698 arch/arm/mach-omap2/omap_hwmod.c oh = omap_hwmod_lookup(uart); oh 3700 arch/arm/mach-omap2/omap_hwmod.c if (oh) oh 3701 arch/arm/mach-omap2/omap_hwmod.c oh->flags |= DEBUG_OMAPUART_FLAGS; oh 3737 arch/arm/mach-omap2/omap_hwmod.c int omap_hwmod_enable(struct omap_hwmod *oh) oh 3742 arch/arm/mach-omap2/omap_hwmod.c if (!oh) oh 3745 arch/arm/mach-omap2/omap_hwmod.c spin_lock_irqsave(&oh->_lock, flags); oh 3746 arch/arm/mach-omap2/omap_hwmod.c r = _enable(oh); oh 3747 arch/arm/mach-omap2/omap_hwmod.c spin_unlock_irqrestore(&oh->_lock, flags); oh 3759 arch/arm/mach-omap2/omap_hwmod.c int omap_hwmod_idle(struct omap_hwmod *oh) oh 3764 arch/arm/mach-omap2/omap_hwmod.c if (!oh) oh 3767 arch/arm/mach-omap2/omap_hwmod.c spin_lock_irqsave(&oh->_lock, flags); oh 3768 arch/arm/mach-omap2/omap_hwmod.c r = _idle(oh); oh 3769 arch/arm/mach-omap2/omap_hwmod.c spin_unlock_irqrestore(&oh->_lock, flags); oh 3782 arch/arm/mach-omap2/omap_hwmod.c int omap_hwmod_shutdown(struct omap_hwmod *oh) oh 3787 arch/arm/mach-omap2/omap_hwmod.c if (!oh) oh 3790 arch/arm/mach-omap2/omap_hwmod.c spin_lock_irqsave(&oh->_lock, flags); oh 3791 arch/arm/mach-omap2/omap_hwmod.c r = _shutdown(oh); oh 3792 arch/arm/mach-omap2/omap_hwmod.c spin_unlock_irqrestore(&oh->_lock, flags); oh 3812 arch/arm/mach-omap2/omap_hwmod.c struct powerdomain *omap_hwmod_get_pwrdm(struct omap_hwmod *oh) oh 3819 arch/arm/mach-omap2/omap_hwmod.c if (!oh) oh 3822 arch/arm/mach-omap2/omap_hwmod.c if (oh->clkdm) oh 3823 arch/arm/mach-omap2/omap_hwmod.c return oh->clkdm->pwrdm.ptr; oh 3825 arch/arm/mach-omap2/omap_hwmod.c if (oh->_clk) { oh 3826 arch/arm/mach-omap2/omap_hwmod.c c = oh->_clk; oh 3828 arch/arm/mach-omap2/omap_hwmod.c oi = _find_mpu_rt_port(oh); oh 3851 arch/arm/mach-omap2/omap_hwmod.c void __iomem *omap_hwmod_get_mpu_rt_va(struct omap_hwmod *oh) oh 3853 arch/arm/mach-omap2/omap_hwmod.c if (!oh) oh 3856 arch/arm/mach-omap2/omap_hwmod.c if (oh->_int_flags & _HWMOD_NO_MPU_PORT) oh 3859 arch/arm/mach-omap2/omap_hwmod.c if (oh->_state == _HWMOD_STATE_UNKNOWN) oh 3862 arch/arm/mach-omap2/omap_hwmod.c return oh->_mpu_rt_va; oh 3883 arch/arm/mach-omap2/omap_hwmod.c int omap_hwmod_enable_wakeup(struct omap_hwmod *oh) oh 3888 arch/arm/mach-omap2/omap_hwmod.c spin_lock_irqsave(&oh->_lock, flags); oh 3890 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->sysc && oh 3891 arch/arm/mach-omap2/omap_hwmod.c (oh->class->sysc->sysc_flags & SYSC_HAS_ENAWAKEUP)) { oh 3892 arch/arm/mach-omap2/omap_hwmod.c v = oh->_sysc_cache; oh 3893 arch/arm/mach-omap2/omap_hwmod.c _enable_wakeup(oh, &v); oh 3894 arch/arm/mach-omap2/omap_hwmod.c _write_sysconfig(v, oh); oh 3897 arch/arm/mach-omap2/omap_hwmod.c spin_unlock_irqrestore(&oh->_lock, flags); oh 3915 arch/arm/mach-omap2/omap_hwmod.c int omap_hwmod_disable_wakeup(struct omap_hwmod *oh) oh 3920 arch/arm/mach-omap2/omap_hwmod.c spin_lock_irqsave(&oh->_lock, flags); oh 3922 arch/arm/mach-omap2/omap_hwmod.c if (oh->class->sysc && oh 3923 arch/arm/mach-omap2/omap_hwmod.c (oh->class->sysc->sysc_flags & SYSC_HAS_ENAWAKEUP)) { oh 3924 arch/arm/mach-omap2/omap_hwmod.c v = oh->_sysc_cache; oh 3925 arch/arm/mach-omap2/omap_hwmod.c _disable_wakeup(oh, &v); oh 3926 arch/arm/mach-omap2/omap_hwmod.c _write_sysconfig(v, oh); oh 3929 arch/arm/mach-omap2/omap_hwmod.c spin_unlock_irqrestore(&oh->_lock, flags); oh 3946 arch/arm/mach-omap2/omap_hwmod.c int omap_hwmod_assert_hardreset(struct omap_hwmod *oh, const char *name) oh 3951 arch/arm/mach-omap2/omap_hwmod.c if (!oh) oh 3954 arch/arm/mach-omap2/omap_hwmod.c spin_lock_irqsave(&oh->_lock, flags); oh 3955 arch/arm/mach-omap2/omap_hwmod.c ret = _assert_hardreset(oh, name); oh 3956 arch/arm/mach-omap2/omap_hwmod.c spin_unlock_irqrestore(&oh->_lock, flags); oh 3973 arch/arm/mach-omap2/omap_hwmod.c int omap_hwmod_deassert_hardreset(struct omap_hwmod *oh, const char *name) oh 3978 arch/arm/mach-omap2/omap_hwmod.c if (!oh) oh 3981 arch/arm/mach-omap2/omap_hwmod.c spin_lock_irqsave(&oh->_lock, flags); oh 3982 arch/arm/mach-omap2/omap_hwmod.c ret = _deassert_hardreset(oh, name); oh 3983 arch/arm/mach-omap2/omap_hwmod.c spin_unlock_irqrestore(&oh->_lock, flags); oh 4001 arch/arm/mach-omap2/omap_hwmod.c int (*fn)(struct omap_hwmod *oh, oh 4042 arch/arm/mach-omap2/omap_hwmod.c int omap_hwmod_set_postsetup_state(struct omap_hwmod *oh, u8 state) oh 4047 arch/arm/mach-omap2/omap_hwmod.c if (!oh) oh 4055 arch/arm/mach-omap2/omap_hwmod.c spin_lock_irqsave(&oh->_lock, flags); oh 4057 arch/arm/mach-omap2/omap_hwmod.c if (oh->_state != _HWMOD_STATE_REGISTERED) { oh 4062 arch/arm/mach-omap2/omap_hwmod.c oh->_postsetup_state = state; oh 4066 arch/arm/mach-omap2/omap_hwmod.c spin_unlock_irqrestore(&oh->_lock, flags); oh 4082 arch/arm/mach-omap2/omap_hwmod.c int omap_hwmod_get_context_loss_count(struct omap_hwmod *oh) oh 4088 arch/arm/mach-omap2/omap_hwmod.c return soc_ops.get_context_lost(oh); oh 4090 arch/arm/mach-omap2/omap_hwmod.c pwrdm = omap_hwmod_get_pwrdm(oh); oh 4156 arch/arm/mach-omap2/omap_hwmod.c const char *omap_hwmod_get_main_clk(struct omap_hwmod *oh) oh 4158 arch/arm/mach-omap2/omap_hwmod.c if (!oh) oh 4161 arch/arm/mach-omap2/omap_hwmod.c return oh->main_clk; oh 527 arch/arm/mach-omap2/omap_hwmod.h int (*pre_shutdown)(struct omap_hwmod *oh); oh 528 arch/arm/mach-omap2/omap_hwmod.h int (*reset)(struct omap_hwmod *oh); oh 529 arch/arm/mach-omap2/omap_hwmod.h int (*enable_preprogram)(struct omap_hwmod *oh); oh 530 arch/arm/mach-omap2/omap_hwmod.h void (*lock)(struct omap_hwmod *oh); oh 531 arch/arm/mach-omap2/omap_hwmod.h void (*unlock)(struct omap_hwmod *oh); oh 615 arch/arm/mach-omap2/omap_hwmod.h int omap_hwmod_for_each(int (*fn)(struct omap_hwmod *oh, void *data), oh 619 arch/arm/mach-omap2/omap_hwmod.h int omap_hwmod_parse_module_range(struct omap_hwmod *oh, oh 630 arch/arm/mach-omap2/omap_hwmod.h int omap_hwmod_enable(struct omap_hwmod *oh); oh 631 arch/arm/mach-omap2/omap_hwmod.h int omap_hwmod_idle(struct omap_hwmod *oh); oh 632 arch/arm/mach-omap2/omap_hwmod.h int omap_hwmod_shutdown(struct omap_hwmod *oh); oh 634 arch/arm/mach-omap2/omap_hwmod.h int omap_hwmod_assert_hardreset(struct omap_hwmod *oh, const char *name); oh 635 arch/arm/mach-omap2/omap_hwmod.h int omap_hwmod_deassert_hardreset(struct omap_hwmod *oh, const char *name); oh 637 arch/arm/mach-omap2/omap_hwmod.h void omap_hwmod_write(u32 v, struct omap_hwmod *oh, u16 reg_offs); oh 638 arch/arm/mach-omap2/omap_hwmod.h u32 omap_hwmod_read(struct omap_hwmod *oh, u16 reg_offs); oh 639 arch/arm/mach-omap2/omap_hwmod.h int omap_hwmod_softreset(struct omap_hwmod *oh); oh 641 arch/arm/mach-omap2/omap_hwmod.h int omap_hwmod_count_resources(struct omap_hwmod *oh, unsigned long flags); oh 642 arch/arm/mach-omap2/omap_hwmod.h int omap_hwmod_fill_resources(struct omap_hwmod *oh, struct resource *res); oh 643 arch/arm/mach-omap2/omap_hwmod.h int omap_hwmod_get_resource_byname(struct omap_hwmod *oh, unsigned int type, oh 646 arch/arm/mach-omap2/omap_hwmod.h struct powerdomain *omap_hwmod_get_pwrdm(struct omap_hwmod *oh); oh 647 arch/arm/mach-omap2/omap_hwmod.h void __iomem *omap_hwmod_get_mpu_rt_va(struct omap_hwmod *oh); oh 649 arch/arm/mach-omap2/omap_hwmod.h int omap_hwmod_enable_wakeup(struct omap_hwmod *oh); oh 650 arch/arm/mach-omap2/omap_hwmod.h int omap_hwmod_disable_wakeup(struct omap_hwmod *oh); oh 653 arch/arm/mach-omap2/omap_hwmod.h int (*fn)(struct omap_hwmod *oh, oh 657 arch/arm/mach-omap2/omap_hwmod.h int omap_hwmod_set_postsetup_state(struct omap_hwmod *oh, u8 state); oh 658 arch/arm/mach-omap2/omap_hwmod.h int omap_hwmod_get_context_loss_count(struct omap_hwmod *oh); oh 662 arch/arm/mach-omap2/omap_hwmod.h const char *omap_hwmod_get_main_clk(struct omap_hwmod *oh); oh 668 arch/arm/mach-omap2/omap_hwmod.h extern int omap_hwmod_aess_preprogram(struct omap_hwmod *oh); oh 669 arch/arm/mach-omap2/omap_hwmod.h void omap_hwmod_rtc_unlock(struct omap_hwmod *oh); oh 670 arch/arm/mach-omap2/omap_hwmod.h void omap_hwmod_rtc_lock(struct omap_hwmod *oh); oh 27 arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c #define CLKCTRL(oh, clkctrl) ((oh).prcm.omap4.clkctrl_offs = (clkctrl)) oh 28 arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c #define RSTCTRL(oh, rstctrl) ((oh).prcm.omap4.rstctrl_offs = (rstctrl)) oh 29 arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c #define RSTST(oh, rstst) ((oh).prcm.omap4.rstst_offs = (rstst)) oh 30 arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c #define PRCM_FLAGS(oh, flag) ((oh).prcm.omap4.flags = (flag)) oh 1088 arch/arm/mach-omap2/omap_hwmod_7xx_data.c int dra7xx_pciess_reset(struct omap_hwmod *oh) oh 1092 arch/arm/mach-omap2/omap_hwmod_7xx_data.c for (i = 0; i < oh->rst_lines_cnt; i++) { oh 1093 arch/arm/mach-omap2/omap_hwmod_7xx_data.c omap_hwmod_assert_hardreset(oh, oh->rst_lines[i].name); oh 1094 arch/arm/mach-omap2/omap_hwmod_7xx_data.c omap_hwmod_deassert_hardreset(oh, oh->rst_lines[i].name); oh 52 arch/arm/mach-omap2/omap_hwmod_reset.c int omap_hwmod_aess_preprogram(struct omap_hwmod *oh) oh 56 arch/arm/mach-omap2/omap_hwmod_reset.c va = omap_hwmod_get_mpu_rt_va(oh); oh 74 arch/arm/mach-omap2/omap_hwmod_reset.c static void omap_rtc_wait_not_busy(struct omap_hwmod *oh) oh 79 arch/arm/mach-omap2/omap_hwmod_reset.c omap_test_timeout(omap_hwmod_read(oh, OMAP_RTC_STATUS_REG) oh 93 arch/arm/mach-omap2/omap_hwmod_reset.c void omap_hwmod_rtc_unlock(struct omap_hwmod *oh) oh 98 arch/arm/mach-omap2/omap_hwmod_reset.c omap_rtc_wait_not_busy(oh); oh 99 arch/arm/mach-omap2/omap_hwmod_reset.c omap_hwmod_write(OMAP_RTC_KICK0_VALUE, oh, OMAP_RTC_KICK0_REG); oh 100 arch/arm/mach-omap2/omap_hwmod_reset.c omap_hwmod_write(OMAP_RTC_KICK1_VALUE, oh, OMAP_RTC_KICK1_REG); oh 113 arch/arm/mach-omap2/omap_hwmod_reset.c void omap_hwmod_rtc_lock(struct omap_hwmod *oh) oh 118 arch/arm/mach-omap2/omap_hwmod_reset.c omap_rtc_wait_not_busy(oh); oh 119 arch/arm/mach-omap2/omap_hwmod_reset.c omap_hwmod_write(0x0, oh, OMAP_RTC_KICK0_REG); oh 120 arch/arm/mach-omap2/omap_hwmod_reset.c omap_hwmod_write(0x0, oh, OMAP_RTC_KICK1_REG); oh 91 arch/arm/mach-omap2/sr_device.c static int __init sr_dev_init(struct omap_hwmod *oh, void *user) oh 98 arch/arm/mach-omap2/sr_device.c if (!strncmp(oh->name, "smartreflex_mpu_iva", 20) || oh 99 arch/arm/mach-omap2/sr_device.c !strncmp(oh->name, "smartreflex_mpu", 16)) oh 101 arch/arm/mach-omap2/sr_device.c else if (!strncmp(oh->name, "smartreflex_core", 17)) oh 103 arch/arm/mach-omap2/sr_device.c else if (!strncmp(oh->name, "smartreflex_iva", 16)) oh 107 arch/arm/mach-omap2/sr_device.c pr_err("%s: Unknown instance %s\n", __func__, oh->name); oh 111 arch/arm/mach-omap2/sr_device.c sr_dev_attr = (struct omap_smartreflex_dev_attr *)oh->dev_attr; oh 114 arch/arm/mach-omap2/sr_device.c __func__, oh->name); oh 118 arch/arm/mach-omap2/sr_device.c sr_data->name = oh->name; oh 291 arch/arm/mach-omap2/timer.c struct omap_hwmod *oh; oh 317 arch/arm/mach-omap2/timer.c oh = omap_hwmod_lookup(oh_name); oh 318 arch/arm/mach-omap2/timer.c if (!oh) oh 321 arch/arm/mach-omap2/timer.c *timer_name = oh->name; oh 330 arch/arm/mach-omap2/timer.c timer->fclk = clk_get(NULL, omap_hwmod_get_main_clk(oh)); oh 343 arch/arm/mach-omap2/timer.c omap_hwmod_enable(oh); oh 447 arch/arm/mach-omap2/timer.c struct omap_hwmod *oh; oh 467 arch/arm/mach-omap2/timer.c oh = omap_hwmod_lookup(oh_name); oh 468 arch/arm/mach-omap2/timer.c if (!oh || oh->slaves_cnt == 0) oh 473 arch/arm/mach-omap2/timer.c ret = omap_hwmod_enable(oh); oh 31 arch/arm/mach-omap2/wd_timer.c int omap2_wd_timer_disable(struct omap_hwmod *oh) oh 35 arch/arm/mach-omap2/wd_timer.c if (!oh) { oh 40 arch/arm/mach-omap2/wd_timer.c base = omap_hwmod_get_mpu_rt_va(oh); oh 43 arch/arm/mach-omap2/wd_timer.c oh->name, __func__); oh 75 arch/arm/mach-omap2/wd_timer.c int omap2_wd_timer_reset(struct omap_hwmod *oh) oh 80 arch/arm/mach-omap2/wd_timer.c omap_hwmod_softreset(oh); oh 83 arch/arm/mach-omap2/wd_timer.c omap_test_timeout((omap_hwmod_read(oh, oh 84 arch/arm/mach-omap2/wd_timer.c oh->class->sysc->syss_offs) oh 88 arch/arm/mach-omap2/wd_timer.c if (oh->class->sysc->srst_udelay) oh 89 arch/arm/mach-omap2/wd_timer.c udelay(oh->class->sysc->srst_udelay); oh 93 arch/arm/mach-omap2/wd_timer.c __func__, oh->name, MAX_MODULE_SOFTRESET_WAIT); oh 96 arch/arm/mach-omap2/wd_timer.c oh->name, c); oh 99 arch/arm/mach-omap2/wd_timer.c omap2_wd_timer_disable(oh); oh 11 arch/arm/mach-omap2/wd_timer.h extern int omap2_wd_timer_disable(struct omap_hwmod *oh); oh 12 arch/arm/mach-omap2/wd_timer.h extern int omap2_wd_timer_reset(struct omap_hwmod *oh); oh 192 fs/coda/psdev.c if (!outp->oh.result) { oh 768 fs/coda/upcall.c error = -out->oh.result; oh 1830 fs/fuse/dev.c struct fuse_out_header oh; oh 1836 fs/fuse/dev.c err = fuse_copy_one(cs, &oh, sizeof(oh)); oh 1841 fs/fuse/dev.c if (oh.len != nbytes) oh 1848 fs/fuse/dev.c if (!oh.unique) { oh 1849 fs/fuse/dev.c err = fuse_notify(fc, oh.error, nbytes - sizeof(oh), cs); oh 1854 fs/fuse/dev.c if (oh.error <= -1000 || oh.error > 0) oh 1860 fs/fuse/dev.c req = request_find(fpq, oh.unique & ~FUSE_INT_REQ_BIT); oh 1869 fs/fuse/dev.c if (oh.unique & FUSE_INT_REQ_BIT) { oh 1876 fs/fuse/dev.c else if (oh.error == -ENOSYS) oh 1878 fs/fuse/dev.c else if (oh.error == -EAGAIN) oh 1888 fs/fuse/dev.c req->out.h = oh; oh 1895 fs/fuse/dev.c if (oh.error) oh 1896 fs/fuse/dev.c err = nbytes != sizeof(oh) ? -EINVAL : 0; oh 248 fs/lockd/clnt4xdr.c encode_netobj(xdr, lock->oh.data, lock->oh.len); oh 276 fs/lockd/clnt4xdr.c error = decode_netobj(xdr, &lock->oh); oh 333 fs/lockd/clnt4xdr.c encode_netobj(xdr, lock->oh.data, lock->oh.len); oh 135 fs/lockd/clntproc.c lock->oh.data = req->a_owner; oh 136 fs/lockd/clntproc.c lock->oh.len = snprintf(req->a_owner, sizeof(req->a_owner), "%u@%s", oh 243 fs/lockd/clntxdr.c encode_netobj(xdr, lock->oh.data, lock->oh.len); oh 270 fs/lockd/clntxdr.c error = decode_netobj(xdr, &lock->oh); oh 327 fs/lockd/clntxdr.c encode_netobj(xdr, lock->oh.data, lock->oh.len); oh 431 fs/lockd/svclock.c call->a_args.lock.oh.len = lock->oh.len; oh 434 fs/lockd/svclock.c call->a_args.lock.oh.data = call->a_owner; oh 437 fs/lockd/svclock.c if (lock->oh.len > NLMCLNT_OHSIZE) { oh 438 fs/lockd/svclock.c void *data = kmalloc(lock->oh.len, GFP_KERNEL); oh 441 fs/lockd/svclock.c call->a_args.lock.oh.data = (u8 *) data; oh 444 fs/lockd/svclock.c memcpy(call->a_args.lock.oh.data, lock->oh.data, lock->oh.len); oh 450 fs/lockd/svclock.c if (call->a_args.lock.oh.data != call->a_owner) oh 451 fs/lockd/svclock.c kfree(call->a_args.lock.oh.data); oh 636 fs/lockd/svclock.c conflock->oh.len = 0; /* don't return OH info */ oh 21 fs/lockd/svcshare.c nlm_cmp_owner(struct nlm_share *share, struct xdr_netobj *oh) oh 23 fs/lockd/svcshare.c return share->s_owner.len == oh->len oh 24 fs/lockd/svcshare.c && !memcmp(share->s_owner.data, oh->data, oh->len); oh 32 fs/lockd/svcshare.c struct xdr_netobj *oh = &argp->lock.oh; oh 36 fs/lockd/svcshare.c if (share->s_host == host && nlm_cmp_owner(share, oh)) oh 43 fs/lockd/svcshare.c share = kmalloc(sizeof(*share) + oh->len, oh 50 fs/lockd/svcshare.c memcpy(ohdata, oh->data, oh->len); oh 55 fs/lockd/svcshare.c share->s_owner.len = oh->len; oh 73 fs/lockd/svcshare.c struct xdr_netobj *oh = &argp->lock.oh; oh 77 fs/lockd/svcshare.c if (share->s_host == host && nlm_cmp_owner(share, oh)) { oh 103 fs/lockd/xdr.c nlm_decode_oh(__be32 *p, struct xdr_netobj *oh) oh 105 fs/lockd/xdr.c return xdr_decode_netobj(p, oh); oh 109 fs/lockd/xdr.c nlm_encode_oh(__be32 *p, struct xdr_netobj *oh) oh 111 fs/lockd/xdr.c return xdr_encode_netobj(p, oh); oh 124 fs/lockd/xdr.c || !(p = nlm_decode_oh(p, &lock->oh))) oh 163 fs/lockd/xdr.c if (!(p = xdr_encode_netobj(p, &resp->lock.oh))) oh 275 fs/lockd/xdr.c || !(p = nlm_decode_oh(p, &lock->oh))) oh 101 fs/lockd/xdr4.c nlm4_decode_oh(__be32 *p, struct xdr_netobj *oh) oh 103 fs/lockd/xdr4.c return xdr_decode_netobj(p, oh); oh 116 fs/lockd/xdr4.c || !(p = nlm4_decode_oh(p, &lock->oh))) oh 156 fs/lockd/xdr4.c if (!(p = xdr_encode_netobj(p, &resp->lock.oh))) oh 272 fs/lockd/xdr4.c || !(p = nlm4_decode_oh(p, &lock->oh))) oh 267 fs/ocfs2/acl.c struct ocfs2_lock_holder oh; oh 269 fs/ocfs2/acl.c had_lock = ocfs2_inode_lock_tracker(inode, &bh, 1, &oh); oh 285 fs/ocfs2/acl.c ocfs2_inode_unlock_tracker(inode, 1, &oh, had_lock); oh 296 fs/ocfs2/acl.c struct ocfs2_lock_holder oh; oh 302 fs/ocfs2/acl.c had_lock = ocfs2_inode_lock_tracker(inode, &di_bh, 0, &oh); oh 310 fs/ocfs2/acl.c ocfs2_inode_unlock_tracker(inode, 0, &oh, had_lock); oh 795 fs/ocfs2/dlmglue.c struct ocfs2_lock_holder *oh) oh 797 fs/ocfs2/dlmglue.c INIT_LIST_HEAD(&oh->oh_list); oh 798 fs/ocfs2/dlmglue.c oh->oh_owner_pid = get_pid(task_pid(current)); oh 801 fs/ocfs2/dlmglue.c list_add_tail(&oh->oh_list, &lockres->l_holders); oh 809 fs/ocfs2/dlmglue.c struct ocfs2_lock_holder *oh; oh 812 fs/ocfs2/dlmglue.c list_for_each_entry(oh, &lockres->l_holders, oh_list) { oh 813 fs/ocfs2/dlmglue.c if (oh->oh_owner_pid == pid) { oh 815 fs/ocfs2/dlmglue.c return oh; oh 823 fs/ocfs2/dlmglue.c struct ocfs2_lock_holder *oh) oh 826 fs/ocfs2/dlmglue.c list_del(&oh->oh_list); oh 829 fs/ocfs2/dlmglue.c put_pid(oh->oh_owner_pid); oh 2661 fs/ocfs2/dlmglue.c struct ocfs2_lock_holder *oh) oh 2684 fs/ocfs2/dlmglue.c oh->oh_ex = ex; oh 2685 fs/ocfs2/dlmglue.c ocfs2_add_holder(lockres, oh); oh 2717 fs/ocfs2/dlmglue.c struct ocfs2_lock_holder *oh, oh 2729 fs/ocfs2/dlmglue.c ocfs2_inode_unlock(inode, oh->oh_ex); oh 2730 fs/ocfs2/dlmglue.c ocfs2_remove_holder(lockres, oh); oh 205 fs/ocfs2/dlmglue.h struct ocfs2_lock_holder *oh); oh 208 fs/ocfs2/dlmglue.h struct ocfs2_lock_holder *oh, oh 1127 fs/ocfs2/file.c struct ocfs2_lock_holder oh; oh 1170 fs/ocfs2/file.c had_lock = ocfs2_inode_lock_tracker(inode, &bh, 1, &oh); oh 1277 fs/ocfs2/file.c ocfs2_inode_unlock_tracker(inode, 1, &oh, had_lock); oh 1295 fs/ocfs2/file.c ocfs2_inode_unlock_tracker(inode, 1, &oh, had_lock); oh 1336 fs/ocfs2/file.c struct ocfs2_lock_holder oh; oh 1341 fs/ocfs2/file.c had_lock = ocfs2_inode_lock_tracker(inode, NULL, 0, &oh); oh 1360 fs/ocfs2/file.c ocfs2_inode_unlock_tracker(inode, 0, &oh, had_lock); oh 4255 fs/ocfs2/refcounttree.c struct ocfs2_lock_holder oh; oh 4298 fs/ocfs2/refcounttree.c &oh); oh 4318 fs/ocfs2/refcounttree.c ocfs2_inode_unlock_tracker(new_orphan_inode, 1, &oh, had_lock); oh 1328 fs/ocfs2/xattr.c struct ocfs2_lock_holder oh; oh 1330 fs/ocfs2/xattr.c had_lock = ocfs2_inode_lock_tracker(inode, &di_bh, 0, &oh); oh 1340 fs/ocfs2/xattr.c ocfs2_inode_unlock_tracker(inode, 0, &oh, had_lock); oh 3541 fs/ocfs2/xattr.c struct ocfs2_lock_holder oh; oh 3572 fs/ocfs2/xattr.c had_lock = ocfs2_inode_lock_tracker(inode, &di_bh, 1, &oh); oh 3671 fs/ocfs2/xattr.c ocfs2_inode_unlock_tracker(inode, 1, &oh, had_lock); oh 42 include/linux/lockd/xdr.h struct xdr_netobj oh; oh 312 include/uapi/linux/coda.h struct coda_out_hdr oh; oh 328 include/uapi/linux/coda.h struct coda_out_hdr oh; oh 378 include/uapi/linux/coda.h struct coda_out_hdr oh; oh 391 include/uapi/linux/coda.h struct coda_out_hdr oh; oh 432 include/uapi/linux/coda.h struct coda_out_hdr oh; oh 449 include/uapi/linux/coda.h struct coda_out_hdr oh; oh 501 include/uapi/linux/coda.h struct coda_out_hdr oh; oh 538 include/uapi/linux/coda.h struct coda_out_hdr oh; oh 561 include/uapi/linux/coda.h struct coda_out_hdr oh; oh 574 include/uapi/linux/coda.h struct coda_out_hdr oh; oh 581 include/uapi/linux/coda.h struct coda_out_hdr oh; oh 588 include/uapi/linux/coda.h struct coda_out_hdr oh; oh 595 include/uapi/linux/coda.h struct coda_out_hdr oh; oh 602 include/uapi/linux/coda.h struct coda_out_hdr oh; oh 615 include/uapi/linux/coda.h struct coda_out_hdr oh; oh 631 include/uapi/linux/coda.h struct coda_out_hdr oh; oh 641 include/uapi/linux/coda.h struct coda_out_hdr oh; oh 699 include/uapi/linux/coda.h struct coda_out_hdr oh; /* NB: every struct below begins with an oh */ oh 47 net/ipv6/netfilter/ip6t_hbh.c const struct ipv6_opt_hdr *oh; oh 69 net/ipv6/netfilter/ip6t_hbh.c oh = skb_header_pointer(skb, ptr, sizeof(_optsh), &_optsh); oh 70 net/ipv6/netfilter/ip6t_hbh.c if (oh == NULL) { oh 75 net/ipv6/netfilter/ip6t_hbh.c hdrlen = ipv6_optlen(oh); oh 81 net/ipv6/netfilter/ip6t_hbh.c pr_debug("IPv6 OPTS LEN %u %u ", hdrlen, oh->hdrlen); oh 89 net/ipv6/netfilter/ip6t_hbh.c ret = (oh != NULL) && oh 67 tools/perf/tests/bp_signal.c siginfo_t *oh __maybe_unused, oh 79 tools/perf/tests/bp_signal.c siginfo_t *oh __maybe_unused, oh 39 tools/perf/tests/bp_signal_overflow.c siginfo_t *oh __maybe_unused,