mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-29 02:21:31 +00:00
bsec: update after MISC u-class update
Since the commit 8729b1ae2c
("misc: Update read() and
write() methods to return bytes xfered"); The misc bsec driver
need to be adapted to reflect the number of transferred bytes.
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
This commit is contained in:
parent
8c018234ea
commit
0c8620d2ff
2 changed files with 35 additions and 29 deletions
|
@ -364,15 +364,13 @@ static int stm32mp_bsec_read(struct udevice *dev, int offset,
|
||||||
offs -= STM32_BSEC_OTP_OFFSET;
|
offs -= STM32_BSEC_OTP_OFFSET;
|
||||||
shadow = false;
|
shadow = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (offs < 0 || (offs % 4) || (size % 4))
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
otp = offs / sizeof(u32);
|
otp = offs / sizeof(u32);
|
||||||
|
|
||||||
if (otp < 0 || (otp + nb_otp - 1) > BSEC_OTP_MAX_VALUE) {
|
for (i = otp; i < (otp + nb_otp) && i <= BSEC_OTP_MAX_VALUE; i++) {
|
||||||
dev_err(dev, "wrong value for otp, max value : %i\n",
|
|
||||||
BSEC_OTP_MAX_VALUE);
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = otp; i < (otp + nb_otp); i++) {
|
|
||||||
u32 *addr = &((u32 *)buf)[i - otp];
|
u32 *addr = &((u32 *)buf)[i - otp];
|
||||||
|
|
||||||
if (shadow)
|
if (shadow)
|
||||||
|
@ -383,7 +381,10 @@ static int stm32mp_bsec_read(struct udevice *dev, int offset,
|
||||||
if (ret)
|
if (ret)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return ret;
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
else
|
||||||
|
return (i - otp) * 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int stm32mp_bsec_write(struct udevice *dev, int offset,
|
static int stm32mp_bsec_write(struct udevice *dev, int offset,
|
||||||
|
@ -400,15 +401,13 @@ static int stm32mp_bsec_write(struct udevice *dev, int offset,
|
||||||
offs -= STM32_BSEC_OTP_OFFSET;
|
offs -= STM32_BSEC_OTP_OFFSET;
|
||||||
shadow = false;
|
shadow = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (offs < 0 || (offs % 4) || (size % 4))
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
otp = offs / sizeof(u32);
|
otp = offs / sizeof(u32);
|
||||||
|
|
||||||
if (otp < 0 || (otp + nb_otp - 1) > BSEC_OTP_MAX_VALUE) {
|
for (i = otp; i < otp + nb_otp && i <= BSEC_OTP_MAX_VALUE; i++) {
|
||||||
dev_err(dev, "wrong value for otp, max value : %d\n",
|
|
||||||
BSEC_OTP_MAX_VALUE);
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = otp; i < otp + nb_otp; i++) {
|
|
||||||
u32 *val = &((u32 *)buf)[i - otp];
|
u32 *val = &((u32 *)buf)[i - otp];
|
||||||
|
|
||||||
if (shadow)
|
if (shadow)
|
||||||
|
@ -418,7 +417,10 @@ static int stm32mp_bsec_write(struct udevice *dev, int offset,
|
||||||
if (ret)
|
if (ret)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return ret;
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
else
|
||||||
|
return (i - otp) * 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct misc_ops stm32mp_bsec_ops = {
|
static const struct misc_ops stm32mp_bsec_ops = {
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
int fuse_read(u32 bank, u32 word, u32 *val)
|
int fuse_read(u32 bank, u32 word, u32 *val)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret;
|
||||||
struct udevice *dev;
|
struct udevice *dev;
|
||||||
|
|
||||||
switch (bank) {
|
switch (bank) {
|
||||||
|
@ -32,9 +32,10 @@ int fuse_read(u32 bank, u32 word, u32 *val)
|
||||||
return ret;
|
return ret;
|
||||||
ret = misc_read(dev, word * 4 + STM32_BSEC_SHADOW_OFFSET,
|
ret = misc_read(dev, word * 4 + STM32_BSEC_SHADOW_OFFSET,
|
||||||
val, 4);
|
val, 4);
|
||||||
if (ret < 0)
|
if (ret != 4)
|
||||||
return ret;
|
ret = -EINVAL;
|
||||||
ret = 0;
|
else
|
||||||
|
ret = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef CONFIG_PMIC_STPMIC1
|
#ifdef CONFIG_PMIC_STPMIC1
|
||||||
|
@ -67,9 +68,10 @@ int fuse_prog(u32 bank, u32 word, u32 val)
|
||||||
return ret;
|
return ret;
|
||||||
ret = misc_write(dev, word * 4 + STM32_BSEC_OTP_OFFSET,
|
ret = misc_write(dev, word * 4 + STM32_BSEC_OTP_OFFSET,
|
||||||
&val, 4);
|
&val, 4);
|
||||||
if (ret < 0)
|
if (ret != 4)
|
||||||
return ret;
|
ret = -EINVAL;
|
||||||
ret = 0;
|
else
|
||||||
|
ret = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef CONFIG_PMIC_STPMIC1
|
#ifdef CONFIG_PMIC_STPMIC1
|
||||||
|
@ -100,9 +102,10 @@ int fuse_sense(u32 bank, u32 word, u32 *val)
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
ret = misc_read(dev, word * 4 + STM32_BSEC_OTP_OFFSET, val, 4);
|
ret = misc_read(dev, word * 4 + STM32_BSEC_OTP_OFFSET, val, 4);
|
||||||
if (ret < 0)
|
if (ret != 4)
|
||||||
return ret;
|
ret = -EINVAL;
|
||||||
ret = 0;
|
else
|
||||||
|
ret = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef CONFIG_PMIC_STPMIC1
|
#ifdef CONFIG_PMIC_STPMIC1
|
||||||
|
@ -135,9 +138,10 @@ int fuse_override(u32 bank, u32 word, u32 val)
|
||||||
return ret;
|
return ret;
|
||||||
ret = misc_write(dev, word * 4 + STM32_BSEC_SHADOW_OFFSET,
|
ret = misc_write(dev, word * 4 + STM32_BSEC_SHADOW_OFFSET,
|
||||||
&val, 4);
|
&val, 4);
|
||||||
if (ret < 0)
|
if (ret != 4)
|
||||||
return ret;
|
ret = -EINVAL;
|
||||||
ret = 0;
|
else
|
||||||
|
ret = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef CONFIG_PMIC_STPMIC1
|
#ifdef CONFIG_PMIC_STPMIC1
|
||||||
|
|
Loading…
Add table
Reference in a new issue