ARM: zynq: Setup correct slcr_lock value
authorMichal Simek <michal.simek@xilinx.com>
Fri, 30 Aug 2013 05:26:08 +0000 (07:26 +0200)
committerMichal Simek <michal.simek@xilinx.com>
Wed, 14 May 2014 05:43:34 +0000 (07:43 +0200)
The driver should setup slcr state according
to slcr operations.

Reported-by: Andrey Filippov <andrey@elphel.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
arch/arm/cpu/armv7/zynq/slcr.c

index 1ff1eac06f9a258462600074e1ef7faa02af8e44..5ba58fad1621a15d7945865f4fe4de25c8f0ceb6 100644 (file)
@@ -21,14 +21,18 @@ static int slcr_lock = 1; /* 1 means locked, 0 means unlocked */
 
 void zynq_slcr_lock(void)
 {
-       if (!slcr_lock)
+       if (!slcr_lock) {
                writel(SLCR_LOCK_MAGIC, &slcr_base->slcr_lock);
+               slcr_lock = 1;
+       }
 }
 
 void zynq_slcr_unlock(void)
 {
-       if (slcr_lock)
+       if (slcr_lock) {
                writel(SLCR_UNLOCK_MAGIC, &slcr_base->slcr_unlock);
+               slcr_lock = 0;
+       }
 }
 
 /* Reset the entire system */