]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
power: supply: bq27xxx: fix wrong errno when bus ops are unsupported
authorHaotian Zhang <vulab@iscas.ac.cn>
Thu, 4 Dec 2025 08:34:36 +0000 (16:34 +0800)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Mon, 12 Jan 2026 01:52:31 +0000 (02:52 +0100)
bq27xxx_write(), bq27xxx_read_block(), and bq27xxx_write_block()
return -EPERM when the bus callback pointer is NULL. A NULL callback
indicates the operation is not supported by the bus/driver,
not that permission is denied.

Return -EOPNOTSUPP instead of -EPERM when di->bus.write/
read_bulk/write_bulk is NULL.

Fixes: 14073f6614f6 ("power: supply: bq27xxx: Add bulk transfer bus methods")
Signed-off-by: Haotian Zhang <vulab@iscas.ac.cn>
Reviewed-by: Matt Ranostay <matt@ranostay.sg>
Link: https://patch.msgid.link/20251204083436.1367-1-vulab@iscas.ac.cn
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/bq27xxx_battery.c

index 19445e39651c713ac982f6aa36e1fe14524cd707..45f0e39b8c2dd4b1d4fccffcb439ec45ab7949b1 100644 (file)
@@ -1172,7 +1172,7 @@ static inline int bq27xxx_write(struct bq27xxx_device_info *di, int reg_index,
                return -EINVAL;
 
        if (!di->bus.write)
-               return -EPERM;
+               return -EOPNOTSUPP;
 
        ret = di->bus.write(di, di->regs[reg_index], value, single);
        if (ret < 0)
@@ -1191,7 +1191,7 @@ static inline int bq27xxx_read_block(struct bq27xxx_device_info *di, int reg_ind
                return -EINVAL;
 
        if (!di->bus.read_bulk)
-               return -EPERM;
+               return -EOPNOTSUPP;
 
        ret = di->bus.read_bulk(di, di->regs[reg_index], data, len);
        if (ret < 0)
@@ -1210,7 +1210,7 @@ static inline int bq27xxx_write_block(struct bq27xxx_device_info *di, int reg_in
                return -EINVAL;
 
        if (!di->bus.write_bulk)
-               return -EPERM;
+               return -EOPNOTSUPP;
 
        ret = di->bus.write_bulk(di, di->regs[reg_index], data, len);
        if (ret < 0)