On Mon, 17 Oct 2016, Heikki Krogerus wrote:

> The wcove USB Type-C driver is currently being flooded with
> interrupts that are not targeted to it. The reason for that
> is because all CHRG first level interrupts are mapped to it.
> This fixes the issue by introducing separate irq for the
> usbc device, and mapping only USB Type-C PHY interrupts to
> it.
> 
> Fixes: 9c6235c86332 ("mfd: intel_soc_pmic_bxtwc: Add bxt_wcove_usbc device")
> Signed-off-by: Heikki Krogerus <[email protected]>
> ---
>  drivers/mfd/intel_soc_pmic_bxtwc.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)

Applied, thanks.

> diff --git a/drivers/mfd/intel_soc_pmic_bxtwc.c 
> b/drivers/mfd/intel_soc_pmic_bxtwc.c
> index 43e54b7..f9a8c52 100644
> --- a/drivers/mfd/intel_soc_pmic_bxtwc.c
> +++ b/drivers/mfd/intel_soc_pmic_bxtwc.c
> @@ -86,6 +86,7 @@ enum bxtwc_irqs_level2 {
>       BXTWC_THRM2_IRQ,
>       BXTWC_BCU_IRQ,
>       BXTWC_ADC_IRQ,
> +     BXTWC_USBC_IRQ,
>       BXTWC_CHGR0_IRQ,
>       BXTWC_CHGR1_IRQ,
>       BXTWC_GPIO0_IRQ,
> @@ -111,7 +112,8 @@ static const struct regmap_irq bxtwc_regmap_irqs_level2[] 
> = {
>       REGMAP_IRQ_REG(BXTWC_THRM2_IRQ, 2, 0xff),
>       REGMAP_IRQ_REG(BXTWC_BCU_IRQ, 3, 0x1f),
>       REGMAP_IRQ_REG(BXTWC_ADC_IRQ, 4, 0xff),
> -     REGMAP_IRQ_REG(BXTWC_CHGR0_IRQ, 5, 0x3f),
> +     REGMAP_IRQ_REG(BXTWC_USBC_IRQ, 5, BIT(5)),
> +     REGMAP_IRQ_REG(BXTWC_CHGR0_IRQ, 5, 0x1f),
>       REGMAP_IRQ_REG(BXTWC_CHGR1_IRQ, 6, 0x1f),
>       REGMAP_IRQ_REG(BXTWC_GPIO0_IRQ, 7, 0xff),
>       REGMAP_IRQ_REG(BXTWC_GPIO1_IRQ, 8, 0x3f),
> @@ -146,7 +148,7 @@ static struct resource adc_resources[] = {
>  };
>  
>  static struct resource usbc_resources[] = {
> -     DEFINE_RES_IRQ_NAMED(BXTWC_CHGR0_IRQ, "USBC"),
> +     DEFINE_RES_IRQ(BXTWC_USBC_IRQ),
>  };
>  
>  static struct resource charger_resources[] = {

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

Reply via email to