On Wed, Oct 03, 2018 at 07:20:54PM +0800, [email protected] wrote:
> +void rtw_phy_cfg_bb(struct rtw_dev *rtwdev, const struct rtw_table *tbl,
> + u32 addr, u32 data)
> +{
> + if (addr == 0xfe)
> + msleep(50);
> + else if (addr == 0xfd)
> + mdelay(5);
> + else if (addr == 0xfc)
> + mdelay(1);
> + else if (addr == 0xfb)
> + usleep_range(50, 60);
> + else if (addr == 0xfa)
> + udelay(5);
> + else if (addr == 0xf9)
> + udelay(1);
> + else
> + rtw_write32(rtwdev, addr, data);
This mix of mdelay(), msleep(), udelay() and usleep_range() looks strange.
You should eigher use atomic versions *delay or non-atomic *sleep
versions .
> +#define bcd_to_dec_pwr_by_rate(val, i) \
> + ({ \
> + typeof(val) __val_ = val; \
> + typeof(i) __i_ = i; \
> + ((s8)((((__val_ >> (__i_ * 8 + 4)) & 0xF)) * 10 + \
> + ((__val_ >> (__i_ * 8)) & 0xF))); \
> + })
Can use bcd2bin from include/linux/bcd.h instead ?
Thanks
Stanislaw