Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b51f92e0 authored by Kalle Valo's avatar Kalle Valo
Browse files

ath6kl: make ath6kl_bmi_[read|write]_hi32() endian safe



ath6kl_bmi_[read|write]_hi32() did not have endian support, fix that.

Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
parent 05aab177
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -225,18 +225,25 @@ struct ath6kl_bmi_target_info {

#define ath6kl_bmi_write_hi32(ar, item, val)				\
	({								\
		u32 addr, v;						\
		u32 addr;						\
		__le32 v;						\
									\
		addr = ath6kl_get_hi_item_addr(ar, HI_ITEM(item));	\
		v = val;						\
		v = cpu_to_le32(val);					\
		ath6kl_bmi_write(ar, addr, (u8 *) &v, sizeof(v));	\
	})

#define ath6kl_bmi_read_hi32(ar, item, val)				\
	({								\
		u32 addr, *check_type = val;				\
		__le32 tmp;						\
		int ret;						\
									\
		(void) (check_type == val);				\
		addr = ath6kl_get_hi_item_addr(ar, HI_ITEM(item));	\
		ath6kl_bmi_read(ar, addr, (u8 *) val, 4);		\
		ret = ath6kl_bmi_read(ar, addr, (u8 *) &tmp, 4);	\
		*val = le32_to_cpu(tmp);				\
		ret;							\
	})

int ath6kl_bmi_init(struct ath6kl *ar);