return false;
        }
 }
-
-bool ai_is_otp_powered(struct si_pub *sih)
-{
-       if (PMUCTL_ENAB(sih))
-               return si_pmu_is_otp_powered(sih);
-       return true;
-}
-
-void ai_otp_power(struct si_pub *sih, bool on)
-{
-       if (PMUCTL_ENAB(sih))
-               si_pmu_otp_power(sih, on);
-       udelay(1000);
-}
 
 
 /* OTP status */
 extern bool ai_is_otp_disabled(struct si_pub *sih);
-extern bool ai_is_otp_powered(struct si_pub *sih);
-extern void ai_otp_power(struct si_pub *sih, bool on);
 
 /* SPROM availability */
 extern bool ai_is_sprom_available(struct si_pub *sih);
 
        if (ai_is_otp_disabled(sih))
                return NULL;
 
-       /* Make sure OTP is powered up */
-       if (!ai_is_otp_powered(sih))
-               return NULL;
-
+       /* OTP is always powered */
        oi = &otpinfo;
 
        /* Check for otp size */
 int
 otp_read_region(struct si_pub *sih, int region, u16 *data,
                                 uint *wlen) {
-       bool wasup = false;
        void *oh;
        int err = 0;
 
-       wasup = ai_is_otp_powered(sih);
-       if (!wasup)
-               ai_otp_power(sih, true);
-
-       if (!ai_is_otp_powered(sih) || ai_is_otp_disabled(sih)) {
+       if (ai_is_otp_disabled(sih)) {
                err = -EPERM;
                goto out;
        }
        err = (((otpinfo_t *) oh)->fn->read_region) (oh, region, data, wlen);
 
  out:
-       if (!wasup)
-               ai_otp_power(sih, false);
-
        return err;
 }