diff --git a/drivers/sh/intc.c b/drivers/sh/intc.c index 66594eb4477d7867ef6d7fb73d67be45976b86e0..1da1edef22214f81208533d81028fa45088ef94b 100644 --- a/drivers/sh/intc.c +++ b/drivers/sh/intc.c @@ -851,6 +851,9 @@ void __init register_intc_controller(struct intc_desc *desc) d->chip.mask_ack = intc_mask_ack; } + /* disable bits matching force_disable before registering irqs */ + if (desc->force_disable) + intc_enable_disable_enum(desc, d, desc->force_disable, 0); /* disable bits matching force_enable before registering irqs */ if (desc->force_enable) diff --git a/include/linux/sh_intc.h b/include/linux/sh_intc.h index 66b4b0c45e71fcf2f50ef35f1439f05d3eca4eaf..51d288d8ac883d0fbb2b2e1b8e073346ebc72038 100644 --- a/include/linux/sh_intc.h +++ b/include/linux/sh_intc.h @@ -72,6 +72,7 @@ struct intc_hw_desc { struct intc_desc { char *name; intc_enum force_enable; + intc_enum force_disable; struct intc_hw_desc hw; };