本文整理汇总了C++中check_irq_resend函数的典型用法代码示例。如果您正苦于以下问题:C++ check_irq_resend函数的具体用法?C++ check_irq_resend怎么用?C++ check_irq_resend使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了check_irq_resend函数的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: msm_mpm_exit_sleep
void msm_mpm_exit_sleep(bool from_idle)
{
unsigned long pending;
int i;
int k;
for (i = 0; i < MSM_MPM_REG_WIDTH; i++) {
pending = msm_mpm_read(MSM_MPM_STATUS_REG_PENDING, i);
if (MSM_MPM_DEBUG_PENDING_IRQ & msm_mpm_debug_mask)
pr_info("%s: pending.%d: 0x%08lx", __func__,
i, pending);
k = find_first_bit(&pending, 32);
while (k < 32) {
unsigned int mpm_irq = 32 * i + k;
unsigned int apps_irq = msm_mpm_get_irq_m2a(mpm_irq);
struct irq_desc *desc = apps_irq ?
irq_to_desc(apps_irq) : NULL;
if (desc && !irqd_is_level_type(&desc->irq_data)) {
irq_set_pending(apps_irq);
if (from_idle)
check_irq_resend(desc, apps_irq);
}
k = find_next_bit(&pending, 32, k + 1);
}
}
msm_mpm_clear();
}
开发者ID:AKToronto,项目名称:IronBorn2,代码行数:32,代码来源:mpm.c
示例2: __enable_irq
void __enable_irq(struct irq_desc *desc, unsigned int irq, bool resume)
{
if (resume)
desc->status &= ~IRQ_SUSPENDED;
switch (desc->depth) {
case 0:
err_out:
WARN(1, KERN_WARNING "Unbalanced enable for IRQ %d\n", irq);
break;
case 1: {
unsigned int status = desc->status & ~IRQ_DISABLED;
if (desc->status & IRQ_SUSPENDED)
goto err_out;
/* Prevent probing on this irq: */
desc->status = status | IRQ_NOPROBE;
check_irq_resend(desc, irq);
/* fall-through */
}
default:
desc->depth--;
}
}
开发者ID:antonywcl,项目名称:AR-5315u_PLD,代码行数:25,代码来源:manage.c
示例3: irq_startup
int irq_startup(struct irq_desc *desc, bool resend, bool force)
{
struct irq_data *d = irq_desc_get_irq_data(desc);
struct cpumask *aff = irq_data_get_affinity_mask(d);
int ret = 0;
desc->depth = 0;
if (irqd_is_started(d)) {
irq_enable(desc);
} else {
switch (__irq_startup_managed(desc, aff, force)) {
case IRQ_STARTUP_NORMAL:
ret = __irq_startup(desc);
irq_setup_affinity(desc);
break;
case IRQ_STARTUP_MANAGED:
irq_do_set_affinity(d, aff, false);
ret = __irq_startup(desc);
break;
case IRQ_STARTUP_ABORT:
irqd_set_managed_shutdown(d);
return 0;
}
}
if (resend)
check_irq_resend(desc);
return ret;
}
开发者ID:SantoshShilimkar,项目名称:linux,代码行数:30,代码来源:chip.c
示例4: __enable_irq
void __enable_irq(struct irq_desc *desc, unsigned int irq, bool resume)
{
if (resume) {
if (!(desc->istate & IRQS_SUSPENDED)) {
if (!desc->action)
return;
if (!(desc->action->flags & IRQF_FORCE_RESUME))
return;
desc->depth++;
}
desc->istate &= ~IRQS_SUSPENDED;
}
switch (desc->depth) {
case 0:
err_out:
WARN(1, KERN_WARNING "Unbalanced enable for IRQ %d, desc->istate=0x%x, desc->depth=%d\n", irq, desc->istate, desc->depth);
break;
case 1: {
if (desc->istate & IRQS_SUSPENDED)
goto err_out;
irq_settings_set_noprobe(desc);
irq_enable(desc);
check_irq_resend(desc, irq);
}
default:
desc->depth--;
}
}
开发者ID:kuzetsa,项目名称:B1RB_htc_msm8974,代码行数:32,代码来源:manage.c
示例5: touch_resend_irq
void touch_resend_irq(unsigned int irq)
{
struct irq_desc *desc = irq_to_desc(irq);
if (desc) {
if (desc->istate & 0x00000200 /*IRQS_PENDING*/)
TOUCH_D(BASE_INFO, "irq(%d) pending\n", irq);
check_irq_resend(desc, irq);
}
}
开发者ID:KAsp3rd,项目名称:android_kernel_lge_msm8992,代码行数:10,代码来源:touch_hwif.c
示例6: __set_tg_irq_status
/* <-- [email protected] add enable/disable irq function for solving mg touch suspend/resume issue */
int __set_tg_irq_status(struct irq_desc *desc, unsigned int irq, bool resume)
{
if (resume)
{
desc->status = IRQ_NOPROBE | IRQ_TYPE_EDGE_FALLING;
desc->depth = 0;
}
else
{
desc->status = IRQ_NOPROBE | IRQ_DISABLED | IRQ_TYPE_EDGE_FALLING;
desc->depth = 1;
}
check_irq_resend(desc, irq);
return desc->status;
}
开发者ID:michaellass,项目名称:lenovo_a1_07_kernel,代码行数:16,代码来源:manage.c
示例7: irq_startup
int irq_startup(struct irq_desc *desc, bool resend)
{
int ret = 0;
irq_state_clr_disabled(desc);
desc->depth = 0;
if (desc->irq_data.chip->irq_startup) {
ret = desc->irq_data.chip->irq_startup(&desc->irq_data);
irq_state_clr_masked(desc);
} else {
irq_enable(desc);
}
if (resend)
check_irq_resend(desc, desc->irq_data.irq);
return ret;
}
开发者ID:Toradex-Apalis-TK1-AndroidTV,项目名称:android_kernel_nvidia_mm,代码行数:17,代码来源:chip.c
示例8: __enable_irq
static void __enable_irq(struct irq_desc *desc, unsigned int irq)
{
switch (desc->depth) {
case 0:
WARN(1, KERN_WARNING "Unbalanced enable for IRQ %d\n", irq);
break;
case 1: {
unsigned int status = desc->status & ~IRQ_DISABLED;
/* Prevent probing on this irq: */
desc->status = status | IRQ_NOPROBE;
check_irq_resend(desc, irq);
/* fall-through */
}
default:
desc->depth--;
}
}
开发者ID:kizukukoto,项目名称:WDN900_GPL,代码行数:18,代码来源:manage.c
示例9: __enable_irq
void __enable_irq(struct irq_desc *desc, unsigned int irq)
{
switch (desc->depth) {
case 0:
err_out:
WARN(1, KERN_WARNING "Unbalanced enable for IRQ %d\n", irq);
break;
case 1: {
if (desc->istate & IRQS_SUSPENDED)
goto err_out;
/* Prevent probing on this irq: */
irq_settings_set_noprobe(desc);
irq_enable(desc);
check_irq_resend(desc, irq);
/* fall-through */
}
default:
desc->depth--;
}
}
开发者ID:mobilehunter,项目名称:trafficsqueezer,代码行数:20,代码来源:manage.c
示例10: msm_mpm_exit_sleep
void msm_mpm_exit_sleep(bool from_idle)
{
unsigned long pending;
int i;
int k;
for (i = 0; i < MSM_MPM_REG_WIDTH; i++) {
pending = msm_mpm_read(MSM_MPM_STATUS_REG_PENDING, i);
if ((MSM_MPM_DEBUG_PENDING_IRQ & msm_mpm_debug_mask) ||
((!from_idle) && (MSM_MPM_DEBUG_SUSPEND_PENDING_IRQ & msm_mpm_debug_mask)))
pr_info("%s: pending.%d: 0x%08lx\n", __func__,
i, pending);
k = find_first_bit(&pending, 32);
while (k < 32) {
unsigned int mpm_irq = 32 * i + k;
unsigned int apps_irq = msm_mpm_get_irq_m2a(mpm_irq);
struct irq_desc *desc = apps_irq ?
irq_to_desc(apps_irq) : NULL;
/*
* This function is called when only CPU 0 is
* running and when both preemption and irqs
* are disabled. There is no need to lock desc.
*/
if (desc && (desc->status & IRQ_TYPE_EDGE_BOTH)) {
desc->status |= IRQ_PENDING;
if (from_idle)
check_irq_resend(desc, apps_irq);
}
k = find_next_bit(&pending, 32, k + 1);
}
}
msm_mpm_set(!from_idle);
}
开发者ID:GunioRobot,项目名称:EVO-3D-,代码行数:38,代码来源:mpm.c
示例11: msm_gic_irq_exit_sleep2
/*
* Restore interrupt subsystem from sleep -- phase 2
* Poke the specified pending interrupts into interrupt hardware.
*/
void msm_gic_irq_exit_sleep2(uint32_t irq_mask, uint32_t wakeup_reason,
uint32_t pending)
{
int i, smsm_irq, smsm_mask;
struct irq_desc *desc;
if (msm_gic_irq_debug_mask & IRQ_DEBUG_SLEEP)
pr_info("%s %x %x %x now\n", __func__, irq_mask,
pending, wakeup_reason);
for (i = 0; pending && i < ARRAY_SIZE(msm_gic_irq_to_smsm); i++) {
smsm_irq = msm_gic_irq_to_smsm[i];
if (smsm_irq == 0)
continue;
smsm_mask = BIT(smsm_irq - 1);
if (!(pending & smsm_mask))
continue;
pending &= ~smsm_mask;
if (msm_gic_irq_debug_mask & IRQ_DEBUG_SLEEP_INT)
pr_info("%s, irq %d, still pending %x now\n",
__func__, i, pending);
/* Peding IRQ */
desc = i ? irq_to_desc(i) : NULL;
/* Check if the pending */
if (desc && !irqd_is_level_type(&desc->irq_data)) {
/* Mark the IRQ as pending, if not Level */
irq_set_pending(i);
check_irq_resend(desc, i);
}
}
}
开发者ID:fell978,项目名称:android_kernel_huawai_Y300-J1,代码行数:40,代码来源:mpm-8625.c
示例12: msm_mpm_exit_sleep
void msm_mpm_exit_sleep(bool from_idle)
{
#ifndef CONFIG_PM_LOG_SIM_TEST
unsigned long pending;
int i;
int k;
for (i = 0; i < MSM_MPM_REG_WIDTH; i++) {
pending = msm_mpm_read(MSM_MPM_STATUS_REG_PENDING, i);
if (MSM_MPM_DEBUG_PENDING_IRQ & msm_mpm_debug_mask)
pr_info("%s: pending.%d: 0x%08lx", __func__,
i, pending);
#ifdef CONFIG_PM_LOG
pmlog_update_status(i, pending);
#endif //CONFIG_PM_LOG
k = find_first_bit(&pending, 32);
while (k < 32) {
unsigned int mpm_irq = 32 * i + k;
unsigned int apps_irq = msm_mpm_get_irq_m2a(mpm_irq);
struct irq_desc *desc = apps_irq ?
irq_to_desc(apps_irq) : NULL;
//Print wake up irq to debug power consumption
/* Terry Cheng, 20120607, Needn't show wake up reason when waking from idle thread {*/
if(!from_idle)
printk("mpm_irq = %d, apps_irq = %d\n", mpm_irq, apps_irq);
/* } Terry Cheng, 20120607, Needn't show wake up reason when waking from idle thread */
if (desc && !irqd_is_level_type(&desc->irq_data)) {
irq_set_pending(apps_irq);
if (from_idle)
check_irq_resend(desc, apps_irq);
}
k = find_next_bit(&pending, 32, k + 1);
}
}
msm_mpm_clear();
#else
unsigned long pending;
int i;
uint rand_interrupt;
uint rand_which;
srandom32((uint)jiffies);
rand_interrupt = random32();
rand_which = random32();
//update wake up source
pending = rand_interrupt % 32;
pending = 1 << pending;
i = rand_which % 2;
//pending = pending % 31;
pr_info("%s: pending.%d: 0x%08lx", __func__, i, pending);
#ifdef CONFIG_PM_LOG
pmlog_update_status(i, pending);
#endif //CONFIG_PM_LOG
return;
#endif //CONFIG_PM_LOG_SIM_TEST
}
开发者ID:KonstaT,项目名称:sailfishos_kernel_jolla_msm8930,代码行数:62,代码来源:mpm.c
注:本文中的check_irq_resend函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论