Lines Matching full:pctrl

129 #define for_each_intel_pin_community(pctrl, community)					\  argument
131 __ci < pctrl->ncommunities && (community = &pctrl->communities[__ci]); \
139 #define for_each_intel_pad_group(pctrl, community, grp) \ argument
140 for_each_intel_pin_community(pctrl, community) \
143 #define for_each_intel_gpio_group(pctrl, community, grp) \ argument
144 for_each_intel_pad_group(pctrl, community, grp) \
147 const struct intel_community *intel_get_community(const struct intel_pinctrl *pctrl, in intel_get_community() argument
152 for_each_intel_pin_community(pctrl, community) { in intel_get_community()
158 dev_warn(pctrl->dev, "failed to find community for pin %u\n", pin); in intel_get_community()
177 static void __iomem *intel_get_padcfg(struct intel_pinctrl *pctrl, in intel_get_padcfg() argument
184 community = intel_get_community(pctrl, pin); in intel_get_padcfg()
197 static bool intel_pad_owned_by_host(const struct intel_pinctrl *pctrl, unsigned int pin) in intel_pad_owned_by_host() argument
204 community = intel_get_community(pctrl, pin); in intel_pad_owned_by_host()
222 static bool intel_pad_acpi_mode(const struct intel_pinctrl *pctrl, unsigned int pin) in intel_pad_acpi_mode() argument
229 community = intel_get_community(pctrl, pin); in intel_pad_acpi_mode()
264 static int intel_pad_locked(const struct intel_pinctrl *pctrl, unsigned int pin) in intel_pad_locked() argument
272 community = intel_get_community(pctrl, pin); in intel_pad_locked()
302 static bool intel_pad_is_unlocked(const struct intel_pinctrl *pctrl, unsigned int pin) in intel_pad_is_unlocked() argument
304 return (intel_pad_locked(pctrl, pin) & PAD_LOCKED) == PAD_UNLOCKED; in intel_pad_is_unlocked()
307 static bool intel_pad_usable(const struct intel_pinctrl *pctrl, unsigned int pin) in intel_pad_usable() argument
309 return intel_pad_owned_by_host(pctrl, pin) && intel_pad_is_unlocked(pctrl, pin); in intel_pad_usable()
314 const struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); in intel_get_groups_count() local
316 return pctrl->soc->ngroups; in intel_get_groups_count()
322 const struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); in intel_get_group_name() local
324 return pctrl->soc->groups[group].grp.name; in intel_get_group_name()
331 const struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); in intel_get_group_pins() local
333 *pins = pctrl->soc->groups[group].grp.pins; in intel_get_group_pins()
334 *npins = pctrl->soc->groups[group].grp.npins; in intel_get_group_pins()
342 struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); in intel_pin_dbg_show() local
348 if (!intel_pad_owned_by_host(pctrl, pin)) { in intel_pin_dbg_show()
353 cfg0 = readl(intel_get_padcfg(pctrl, pin, PADCFG0)); in intel_pin_dbg_show()
354 cfg1 = readl(intel_get_padcfg(pctrl, pin, PADCFG1)); in intel_pin_dbg_show()
365 padcfg = intel_get_padcfg(pctrl, pin, PADCFG2); in intel_pin_dbg_show()
369 locked = intel_pad_locked(pctrl, pin); in intel_pin_dbg_show()
370 acpi = intel_pad_acpi_mode(pctrl, pin); in intel_pin_dbg_show()
399 const struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); in intel_get_functions_count() local
401 return pctrl->soc->nfunctions; in intel_get_functions_count()
407 const struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); in intel_get_function_name() local
409 return pctrl->soc->functions[function].func.name; in intel_get_function_name()
416 const struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); in intel_get_function_groups() local
418 *groups = pctrl->soc->functions[function].func.groups; in intel_get_function_groups()
419 *ngroups = pctrl->soc->functions[function].func.ngroups; in intel_get_function_groups()
427 struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); in intel_pinmux_set_mux() local
428 const struct intel_pingroup *grp = &pctrl->soc->groups[group]; in intel_pinmux_set_mux()
431 guard(raw_spinlock_irqsave)(&pctrl->lock); in intel_pinmux_set_mux()
438 if (!intel_pad_usable(pctrl, grp->grp.pins[i])) in intel_pinmux_set_mux()
447 padcfg0 = intel_get_padcfg(pctrl, grp->grp.pins[i], PADCFG0); in intel_pinmux_set_mux()
543 struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); in intel_gpio_request_enable() local
546 padcfg0 = intel_get_padcfg(pctrl, pin, PADCFG0); in intel_gpio_request_enable()
548 guard(raw_spinlock_irqsave)(&pctrl->lock); in intel_gpio_request_enable()
550 if (!intel_pad_owned_by_host(pctrl, pin)) in intel_gpio_request_enable()
553 if (!intel_pad_is_unlocked(pctrl, pin)) in intel_gpio_request_enable()
574 struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); in intel_gpio_set_direction() local
578 padcfg0 = intel_get_padcfg(pctrl, pin, PADCFG0); in intel_gpio_set_direction()
580 guard(raw_spinlock_irqsave)(&pctrl->lock); in intel_gpio_set_direction()
601 static int intel_config_get_pull(struct intel_pinctrl *pctrl, unsigned int pin, in intel_config_get_pull() argument
607 padcfg1 = intel_get_padcfg(pctrl, pin, PADCFG1); in intel_config_get_pull()
609 scoped_guard(raw_spinlock_irqsave, &pctrl->lock) in intel_config_get_pull()
645 const struct intel_community *community = intel_get_community(pctrl, pin); in intel_config_get_pull()
682 static int intel_config_get_high_impedance(struct intel_pinctrl *pctrl, unsigned int pin, in intel_config_get_high_impedance() argument
688 padcfg0 = intel_get_padcfg(pctrl, pin, PADCFG0); in intel_config_get_high_impedance()
690 scoped_guard(raw_spinlock_irqsave, &pctrl->lock) in intel_config_get_high_impedance()
699 static int intel_config_get_debounce(struct intel_pinctrl *pctrl, unsigned int pin, in intel_config_get_debounce() argument
706 padcfg2 = intel_get_padcfg(pctrl, pin, PADCFG2); in intel_config_get_debounce()
710 scoped_guard(raw_spinlock_irqsave, &pctrl->lock) in intel_config_get_debounce()
725 struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); in intel_config_get() local
730 if (!intel_pad_owned_by_host(pctrl, pin)) in intel_config_get()
737 ret = intel_config_get_pull(pctrl, pin, param, &arg); in intel_config_get()
743 ret = intel_config_get_high_impedance(pctrl, pin, param, &arg); in intel_config_get()
749 ret = intel_config_get_debounce(pctrl, pin, param, &arg); in intel_config_get()
762 static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned int pin, in intel_config_set_pull() argument
800 const struct intel_community *community = intel_get_community(pctrl, pin); in intel_config_set_pull()
834 padcfg1 = intel_get_padcfg(pctrl, pin, PADCFG1); in intel_config_set_pull()
836 guard(raw_spinlock_irqsave)(&pctrl->lock); in intel_config_set_pull()
846 static void intel_gpio_set_high_impedance(struct intel_pinctrl *pctrl, unsigned int pin) in intel_gpio_set_high_impedance() argument
851 padcfg0 = intel_get_padcfg(pctrl, pin, PADCFG0); in intel_gpio_set_high_impedance()
853 guard(raw_spinlock_irqsave)(&pctrl->lock); in intel_gpio_set_high_impedance()
860 static int intel_config_set_debounce(struct intel_pinctrl *pctrl, in intel_config_set_debounce() argument
875 padcfg2 = intel_get_padcfg(pctrl, pin, PADCFG2); in intel_config_set_debounce()
879 padcfg0 = intel_get_padcfg(pctrl, pin, PADCFG0); in intel_config_set_debounce()
881 guard(raw_spinlock_irqsave)(&pctrl->lock); in intel_config_set_debounce()
906 struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); in intel_config_set() local
909 if (!intel_pad_usable(pctrl, pin)) in intel_config_set()
917 ret = intel_config_set_pull(pctrl, pin, configs[i]); in intel_config_set()
923 intel_gpio_set_high_impedance(pctrl, pin); in intel_config_set()
927 ret = intel_config_set_debounce(pctrl, pin, in intel_config_set()
956 * @pctrl: Pinctrl structure
968 static int intel_gpio_to_pin(const struct intel_pinctrl *pctrl, unsigned int offset, in intel_gpio_to_pin() argument
975 for_each_intel_gpio_group(pctrl, comm, grp) { in intel_gpio_to_pin()
991 * @pctrl: Pinctrl structure
998 static int intel_pin_to_gpio(const struct intel_pinctrl *pctrl, int pin) in intel_pin_to_gpio() argument
1003 community = intel_get_community(pctrl, pin); in intel_pin_to_gpio()
1016 struct intel_pinctrl *pctrl = gpiochip_get_data(chip); in intel_gpio_get() local
1021 pin = intel_gpio_to_pin(pctrl, offset, NULL, NULL); in intel_gpio_get()
1025 reg = intel_get_padcfg(pctrl, pin, PADCFG0); in intel_gpio_get()
1039 struct intel_pinctrl *pctrl = gpiochip_get_data(chip); in intel_gpio_set() local
1044 pin = intel_gpio_to_pin(pctrl, offset, NULL, NULL); in intel_gpio_set()
1048 reg = intel_get_padcfg(pctrl, pin, PADCFG0); in intel_gpio_set()
1052 guard(raw_spinlock_irqsave)(&pctrl->lock); in intel_gpio_set()
1064 struct intel_pinctrl *pctrl = gpiochip_get_data(chip); in intel_gpio_get_direction() local
1069 pin = intel_gpio_to_pin(pctrl, offset, NULL, NULL); in intel_gpio_get_direction()
1073 reg = intel_get_padcfg(pctrl, pin, PADCFG0); in intel_gpio_get_direction()
1077 scoped_guard(raw_spinlock_irqsave, &pctrl->lock) in intel_gpio_get_direction()
1116 struct intel_pinctrl *pctrl = gpiochip_get_data(gc); in intel_gpio_irq_ack() local
1121 pin = intel_gpio_to_pin(pctrl, irqd_to_hwirq(d), &community, &padgrp); in intel_gpio_irq_ack()
1131 guard(raw_spinlock)(&pctrl->lock); in intel_gpio_irq_ack()
1139 struct intel_pinctrl *pctrl = gpiochip_get_data(gc); in intel_gpio_irq_mask_unmask() local
1144 pin = intel_gpio_to_pin(pctrl, hwirq, &community, &padgrp); in intel_gpio_irq_mask_unmask()
1156 guard(raw_spinlock_irqsave)(&pctrl->lock); in intel_gpio_irq_mask_unmask()
1191 struct intel_pinctrl *pctrl = gpiochip_get_data(gc); in intel_gpio_irq_type() local
1192 unsigned int pin = intel_gpio_to_pin(pctrl, irqd_to_hwirq(d), NULL, NULL); in intel_gpio_irq_type()
1196 reg = intel_get_padcfg(pctrl, pin, PADCFG0); in intel_gpio_irq_type()
1205 if (intel_pad_acpi_mode(pctrl, pin)) { in intel_gpio_irq_type()
1206 dev_warn(pctrl->dev, "pin %u cannot be used as IRQ\n", pin); in intel_gpio_irq_type()
1227 guard(raw_spinlock_irqsave)(&pctrl->lock); in intel_gpio_irq_type()
1249 struct intel_pinctrl *pctrl = gpiochip_get_data(gc); in intel_gpio_irq_wake() local
1250 unsigned int pin = intel_gpio_to_pin(pctrl, irqd_to_hwirq(d), NULL, NULL); in intel_gpio_irq_wake()
1253 enable_irq_wake(pctrl->irq); in intel_gpio_irq_wake()
1255 disable_irq_wake(pctrl->irq); in intel_gpio_irq_wake()
1257 dev_dbg(pctrl->dev, "%s wake for pin %u\n", str_enable_disable(on), pin); in intel_gpio_irq_wake()
1276 struct intel_pinctrl *pctrl = data; in intel_gpio_irq() local
1280 for_each_intel_pad_group(pctrl, community, padgrp) { in intel_gpio_irq()
1281 struct gpio_chip *gc = &pctrl->chip; in intel_gpio_irq()
1291 scoped_guard(raw_spinlock, &pctrl->lock) { in intel_gpio_irq()
1308 static void intel_gpio_irq_init(struct intel_pinctrl *pctrl) in intel_gpio_irq_init() argument
1312 for_each_intel_pin_community(pctrl, community) { in intel_gpio_irq_init()
1329 struct intel_pinctrl *pctrl = gpiochip_get_data(gc); in intel_gpio_irq_init_hw() local
1335 intel_gpio_irq_init(pctrl); in intel_gpio_irq_init_hw()
1342 struct intel_pinctrl *pctrl = gpiochip_get_data(gc); in intel_gpio_add_pin_ranges() local
1347 for_each_intel_gpio_group(pctrl, community, grp) { in intel_gpio_add_pin_ranges()
1348 ret = gpiochip_add_pin_range(&pctrl->chip, dev_name(pctrl->dev), in intel_gpio_add_pin_ranges()
1352 dev_err(pctrl->dev, "failed to add GPIO pin range\n"); in intel_gpio_add_pin_ranges()
1360 static unsigned int intel_gpio_ngpio(const struct intel_pinctrl *pctrl) in intel_gpio_ngpio() argument
1366 for_each_intel_gpio_group(pctrl, community, grp) { in intel_gpio_ngpio()
1374 static int intel_gpio_probe(struct intel_pinctrl *pctrl, int irq) in intel_gpio_probe() argument
1379 pctrl->chip = intel_gpio_chip; in intel_gpio_probe()
1382 pctrl->chip.ngpio = intel_gpio_ngpio(pctrl); in intel_gpio_probe()
1383 pctrl->chip.label = dev_name(pctrl->dev); in intel_gpio_probe()
1384 pctrl->chip.parent = pctrl->dev; in intel_gpio_probe()
1385 pctrl->chip.base = -1; in intel_gpio_probe()
1386 pctrl->chip.add_pin_ranges = intel_gpio_add_pin_ranges; in intel_gpio_probe()
1387 pctrl->irq = irq; in intel_gpio_probe()
1393 ret = devm_request_irq(pctrl->dev, irq, intel_gpio_irq, in intel_gpio_probe()
1395 dev_name(pctrl->dev), pctrl); in intel_gpio_probe()
1397 dev_err(pctrl->dev, "failed to request interrupt\n"); in intel_gpio_probe()
1402 girq = &pctrl->chip.irq; in intel_gpio_probe()
1411 ret = devm_gpiochip_add_data(pctrl->dev, &pctrl->chip, pctrl); in intel_gpio_probe()
1413 dev_err(pctrl->dev, "failed to register gpiochip\n"); in intel_gpio_probe()
1420 static int intel_pinctrl_add_padgroups_by_gpps(struct intel_pinctrl *pctrl, in intel_pinctrl_add_padgroups_by_gpps() argument
1427 gpps = devm_kcalloc(pctrl->dev, ngpps, sizeof(*gpps), GFP_KERNEL); in intel_pinctrl_add_padgroups_by_gpps()
1460 static int intel_pinctrl_add_padgroups_by_size(struct intel_pinctrl *pctrl, in intel_pinctrl_add_padgroups_by_size() argument
1471 gpps = devm_kcalloc(pctrl->dev, ngpps, sizeof(*gpps), GFP_KERNEL); in intel_pinctrl_add_padgroups_by_size()
1495 static int intel_pinctrl_pm_init(struct intel_pinctrl *pctrl) in intel_pinctrl_pm_init() argument
1498 const struct intel_pinctrl_soc_data *soc = pctrl->soc; in intel_pinctrl_pm_init()
1503 pads = devm_kcalloc(pctrl->dev, soc->npins, sizeof(*pads), GFP_KERNEL); in intel_pinctrl_pm_init()
1507 communities = devm_kcalloc(pctrl->dev, pctrl->ncommunities, in intel_pinctrl_pm_init()
1513 for (i = 0; i < pctrl->ncommunities; i++) { in intel_pinctrl_pm_init()
1514 struct intel_community *community = &pctrl->communities[i]; in intel_pinctrl_pm_init()
1517 intmask = devm_kcalloc(pctrl->dev, community->ngpps, in intel_pinctrl_pm_init()
1524 hostown = devm_kcalloc(pctrl->dev, community->ngpps, in intel_pinctrl_pm_init()
1532 pctrl->context.pads = pads; in intel_pinctrl_pm_init()
1533 pctrl->context.communities = communities; in intel_pinctrl_pm_init()
1539 static int intel_pinctrl_probe_pwm(struct intel_pinctrl *pctrl, in intel_pinctrl_probe_pwm() argument
1556 chip = devm_pwm_lpss_probe(pctrl->dev, community->regs + PWMC, &info); in intel_pinctrl_probe_pwm()
1564 struct intel_pinctrl *pctrl; in intel_pinctrl_probe() local
1567 pctrl = devm_kzalloc(dev, sizeof(*pctrl), GFP_KERNEL); in intel_pinctrl_probe()
1568 if (!pctrl) in intel_pinctrl_probe()
1571 pctrl->dev = dev; in intel_pinctrl_probe()
1572 pctrl->soc = soc_data; in intel_pinctrl_probe()
1573 raw_spin_lock_init(&pctrl->lock); in intel_pinctrl_probe()
1579 pctrl->ncommunities = pctrl->soc->ncommunities; in intel_pinctrl_probe()
1580 pctrl->communities = devm_kcalloc(dev, pctrl->ncommunities, in intel_pinctrl_probe()
1581 sizeof(*pctrl->communities), GFP_KERNEL); in intel_pinctrl_probe()
1582 if (!pctrl->communities) in intel_pinctrl_probe()
1585 for (i = 0; i < pctrl->ncommunities; i++) { in intel_pinctrl_probe()
1586 struct intel_community *community = &pctrl->communities[i]; in intel_pinctrl_probe()
1591 *community = pctrl->soc->communities[i]; in intel_pinctrl_probe()
1641 ret = intel_pinctrl_add_padgroups_by_gpps(pctrl, community); in intel_pinctrl_probe()
1643 ret = intel_pinctrl_add_padgroups_by_size(pctrl, community); in intel_pinctrl_probe()
1647 ret = intel_pinctrl_probe_pwm(pctrl, community); in intel_pinctrl_probe()
1656 ret = intel_pinctrl_pm_init(pctrl); in intel_pinctrl_probe()
1660 pctrl->pctldesc = intel_pinctrl_desc; in intel_pinctrl_probe()
1661 pctrl->pctldesc.name = dev_name(dev); in intel_pinctrl_probe()
1662 pctrl->pctldesc.pins = pctrl->soc->pins; in intel_pinctrl_probe()
1663 pctrl->pctldesc.npins = pctrl->soc->npins; in intel_pinctrl_probe()
1665 pctrl->pctldev = devm_pinctrl_register(dev, &pctrl->pctldesc, pctrl); in intel_pinctrl_probe()
1666 if (IS_ERR(pctrl->pctldev)) { in intel_pinctrl_probe()
1668 return PTR_ERR(pctrl->pctldev); in intel_pinctrl_probe()
1671 ret = intel_gpio_probe(pctrl, irq); in intel_pinctrl_probe()
1675 platform_set_drvdata(pdev, pctrl); in intel_pinctrl_probe()
1743 static bool intel_pinctrl_should_save(struct intel_pinctrl *pctrl, unsigned int pin) in intel_pinctrl_should_save() argument
1745 const struct pin_desc *pd = pin_desc_get(pctrl->pctldev, pin); in intel_pinctrl_should_save()
1748 if (!pd || !intel_pad_usable(pctrl, pin)) in intel_pinctrl_should_save()
1758 gpiochip_line_is_irq(&pctrl->chip, intel_pin_to_gpio(pctrl, pin))) in intel_pinctrl_should_save()
1775 value = readl(intel_get_padcfg(pctrl, pin, PADCFG0)); in intel_pinctrl_should_save()
1784 struct intel_pinctrl *pctrl = dev_get_drvdata(dev); in intel_pinctrl_suspend_noirq() local
1789 pads = pctrl->context.pads; in intel_pinctrl_suspend_noirq()
1790 for (i = 0; i < pctrl->soc->npins; i++) { in intel_pinctrl_suspend_noirq()
1791 const struct pinctrl_pin_desc *desc = &pctrl->soc->pins[i]; in intel_pinctrl_suspend_noirq()
1795 if (!intel_pinctrl_should_save(pctrl, desc->number)) in intel_pinctrl_suspend_noirq()
1798 val = readl(intel_get_padcfg(pctrl, desc->number, PADCFG0)); in intel_pinctrl_suspend_noirq()
1800 val = readl(intel_get_padcfg(pctrl, desc->number, PADCFG1)); in intel_pinctrl_suspend_noirq()
1803 padcfg = intel_get_padcfg(pctrl, desc->number, PADCFG2); in intel_pinctrl_suspend_noirq()
1808 communities = pctrl->context.communities; in intel_pinctrl_suspend_noirq()
1809 for (i = 0; i < pctrl->ncommunities; i++) { in intel_pinctrl_suspend_noirq()
1810 struct intel_community *community = &pctrl->communities[i]; in intel_pinctrl_suspend_noirq()
1840 static void intel_restore_hostown(struct intel_pinctrl *pctrl, unsigned int c, in intel_restore_hostown() argument
1843 const struct intel_community *community = &pctrl->communities[c]; in intel_restore_hostown()
1845 struct device *dev = pctrl->dev; in intel_restore_hostown()
1853 for_each_requested_gpio_in_range(&pctrl->chip, i, padgrp->gpio_base, padgrp->size, dummy) in intel_restore_hostown()
1862 static void intel_restore_intmask(struct intel_pinctrl *pctrl, unsigned int c, in intel_restore_intmask() argument
1865 struct device *dev = pctrl->dev; in intel_restore_intmask()
1873 static void intel_restore_padcfg(struct intel_pinctrl *pctrl, unsigned int pin, in intel_restore_padcfg() argument
1878 struct device *dev = pctrl->dev; in intel_restore_padcfg()
1881 padcfg = intel_get_padcfg(pctrl, pin, reg); in intel_restore_padcfg()
1893 struct intel_pinctrl *pctrl = dev_get_drvdata(dev); in intel_pinctrl_resume_noirq() local
1899 intel_gpio_irq_init(pctrl); in intel_pinctrl_resume_noirq()
1901 pads = pctrl->context.pads; in intel_pinctrl_resume_noirq()
1902 for (i = 0; i < pctrl->soc->npins; i++) { in intel_pinctrl_resume_noirq()
1903 const struct pinctrl_pin_desc *desc = &pctrl->soc->pins[i]; in intel_pinctrl_resume_noirq()
1905 if (!(intel_pinctrl_should_save(pctrl, desc->number) || in intel_pinctrl_resume_noirq()
1913 intel_restore_padcfg(pctrl, desc->number, PADCFG0, pads[i].padcfg0); in intel_pinctrl_resume_noirq()
1914 intel_restore_padcfg(pctrl, desc->number, PADCFG1, pads[i].padcfg1); in intel_pinctrl_resume_noirq()
1915 intel_restore_padcfg(pctrl, desc->number, PADCFG2, pads[i].padcfg2); in intel_pinctrl_resume_noirq()
1918 communities = pctrl->context.communities; in intel_pinctrl_resume_noirq()
1919 for (i = 0; i < pctrl->ncommunities; i++) { in intel_pinctrl_resume_noirq()
1920 struct intel_community *community = &pctrl->communities[i]; in intel_pinctrl_resume_noirq()
1926 intel_restore_intmask(pctrl, i, base, gpp, communities[i].intmask[gpp]); in intel_pinctrl_resume_noirq()
1930 intel_restore_hostown(pctrl, i, base, gpp, communities[i].hostown[gpp]); in intel_pinctrl_resume_noirq()