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;
}