diff --git a/package/broadcom-diag/src/gpio.h b/package/broadcom-diag/src/gpio.h
index 982caddae4e384616f472d0bd75013545141967d..16f6ca41cdade7350c76c6b460538d0ca1ea92b9 100644
--- a/package/broadcom-diag/src/gpio.h
+++ b/package/broadcom-diag/src/gpio.h
@@ -68,7 +68,8 @@ static void gpio_set_irqenable(int enabled, irqreturn_t (*handler)(int, void *,
 	else
 		free_irq(irq, handler);
 
-	gpio_intmask(1, (enabled ? 1 : 0));
+	if (ssb.chipco.dev)
+		ssb_write32_masked(ssb.chipco.dev, SSB_CHIPCO_IRQMASK, SSB_CHIPCO_IRQ_GPIO, (enabled ? SSB_CHIPCO_IRQ_GPIO : 0));
 }
 
 #else