diff options
Diffstat (limited to 'drivers/infiniband/hw/ipath/ipath_iba6120.c')
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_iba6120.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_iba6120.c b/drivers/infiniband/hw/ipath/ipath_iba6120.c index bcb70d67dbb9..2345bb011acd 100644 --- a/drivers/infiniband/hw/ipath/ipath_iba6120.c +++ b/drivers/infiniband/hw/ipath/ipath_iba6120.c | |||
@@ -791,6 +791,7 @@ static void ipath_setup_pe_setextled(struct ipath_devdata *dd, u64 lst, | |||
791 | u64 ltst) | 791 | u64 ltst) |
792 | { | 792 | { |
793 | u64 extctl; | 793 | u64 extctl; |
794 | unsigned long flags = 0; | ||
794 | 795 | ||
795 | /* the diags use the LED to indicate diag info, so we leave | 796 | /* the diags use the LED to indicate diag info, so we leave |
796 | * the external LED alone when the diags are running */ | 797 | * the external LED alone when the diags are running */ |
@@ -807,6 +808,7 @@ static void ipath_setup_pe_setextled(struct ipath_devdata *dd, u64 lst, | |||
807 | : INFINIPATH_IBCS_L_STATE_DOWN; | 808 | : INFINIPATH_IBCS_L_STATE_DOWN; |
808 | } | 809 | } |
809 | 810 | ||
811 | spin_lock_irqsave(&dd->ipath_gpio_lock, flags); | ||
810 | extctl = dd->ipath_extctrl & ~(INFINIPATH_EXTC_LED1PRIPORT_ON | | 812 | extctl = dd->ipath_extctrl & ~(INFINIPATH_EXTC_LED1PRIPORT_ON | |
811 | INFINIPATH_EXTC_LED2PRIPORT_ON); | 813 | INFINIPATH_EXTC_LED2PRIPORT_ON); |
812 | 814 | ||
@@ -816,6 +818,7 @@ static void ipath_setup_pe_setextled(struct ipath_devdata *dd, u64 lst, | |||
816 | extctl |= INFINIPATH_EXTC_LED1PRIPORT_ON; | 818 | extctl |= INFINIPATH_EXTC_LED1PRIPORT_ON; |
817 | dd->ipath_extctrl = extctl; | 819 | dd->ipath_extctrl = extctl; |
818 | ipath_write_kreg(dd, dd->ipath_kregs->kr_extctrl, extctl); | 820 | ipath_write_kreg(dd, dd->ipath_kregs->kr_extctrl, extctl); |
821 | spin_unlock_irqrestore(&dd->ipath_gpio_lock, flags); | ||
819 | } | 822 | } |
820 | 823 | ||
821 | /** | 824 | /** |