Lines Matching refs:wdev

20 static int wfx_read32(struct wfx_dev *wdev, int reg, u32 *val)  in wfx_read32()  argument
28 ret = wdev->hwbus_ops->copy_from_io(wdev->hwbus_priv, reg, tmp, sizeof(u32)); in wfx_read32()
33 dev_err(wdev->dev, "%s: bus communication error: %d\n", __func__, ret); in wfx_read32()
37 static int wfx_write32(struct wfx_dev *wdev, int reg, u32 val) in wfx_write32() argument
45 ret = wdev->hwbus_ops->copy_to_io(wdev->hwbus_priv, reg, tmp, sizeof(u32)); in wfx_write32()
48 dev_err(wdev->dev, "%s: bus communication error: %d\n", __func__, ret); in wfx_write32()
52 static int wfx_read32_locked(struct wfx_dev *wdev, int reg, u32 *val) in wfx_read32_locked() argument
56 wdev->hwbus_ops->lock(wdev->hwbus_priv); in wfx_read32_locked()
57 ret = wfx_read32(wdev, reg, val); in wfx_read32_locked()
59 wdev->hwbus_ops->unlock(wdev->hwbus_priv); in wfx_read32_locked()
63 static int wfx_write32_locked(struct wfx_dev *wdev, int reg, u32 val) in wfx_write32_locked() argument
67 wdev->hwbus_ops->lock(wdev->hwbus_priv); in wfx_write32_locked()
68 ret = wfx_write32(wdev, reg, val); in wfx_write32_locked()
70 wdev->hwbus_ops->unlock(wdev->hwbus_priv); in wfx_write32_locked()
74 static int wfx_write32_bits_locked(struct wfx_dev *wdev, int reg, u32 mask, u32 val) in wfx_write32_bits_locked() argument
81 wdev->hwbus_ops->lock(wdev->hwbus_priv); in wfx_write32_bits_locked()
82 ret = wfx_read32(wdev, reg, &val_r); in wfx_write32_bits_locked()
88 ret = wfx_write32(wdev, reg, val_w); in wfx_write32_bits_locked()
92 wdev->hwbus_ops->unlock(wdev->hwbus_priv); in wfx_write32_bits_locked()
96 static int wfx_indirect_read(struct wfx_dev *wdev, int reg, u32 addr, void *buf, size_t len) in wfx_indirect_read() argument
113 ret = wfx_write32(wdev, WFX_REG_BASE_ADDR, addr); in wfx_indirect_read()
117 ret = wfx_read32(wdev, WFX_REG_CONFIG, &cfg); in wfx_indirect_read()
121 ret = wfx_write32(wdev, WFX_REG_CONFIG, cfg | prefetch); in wfx_indirect_read()
126 ret = wfx_read32(wdev, WFX_REG_CONFIG, &cfg); in wfx_indirect_read()
138 ret = wdev->hwbus_ops->copy_from_io(wdev->hwbus_priv, reg, buf, len); in wfx_indirect_read()
146 static int wfx_indirect_write(struct wfx_dev *wdev, int reg, u32 addr, in wfx_indirect_write() argument
153 ret = wfx_write32(wdev, WFX_REG_BASE_ADDR, addr); in wfx_indirect_write()
157 return wdev->hwbus_ops->copy_to_io(wdev->hwbus_priv, reg, buf, len); in wfx_indirect_write()
160 static int wfx_indirect_read_locked(struct wfx_dev *wdev, int reg, u32 addr, in wfx_indirect_read_locked() argument
165 wdev->hwbus_ops->lock(wdev->hwbus_priv); in wfx_indirect_read_locked()
166 ret = wfx_indirect_read(wdev, reg, addr, buf, len); in wfx_indirect_read_locked()
168 wdev->hwbus_ops->unlock(wdev->hwbus_priv); in wfx_indirect_read_locked()
172 static int wfx_indirect_write_locked(struct wfx_dev *wdev, int reg, u32 addr, in wfx_indirect_write_locked() argument
177 wdev->hwbus_ops->lock(wdev->hwbus_priv); in wfx_indirect_write_locked()
178 ret = wfx_indirect_write(wdev, reg, addr, buf, len); in wfx_indirect_write_locked()
180 wdev->hwbus_ops->unlock(wdev->hwbus_priv); in wfx_indirect_write_locked()
184 static int wfx_indirect_read32_locked(struct wfx_dev *wdev, int reg, u32 addr, u32 *val) in wfx_indirect_read32_locked() argument
191 wdev->hwbus_ops->lock(wdev->hwbus_priv); in wfx_indirect_read32_locked()
192 ret = wfx_indirect_read(wdev, reg, addr, tmp, sizeof(u32)); in wfx_indirect_read32_locked()
195 wdev->hwbus_ops->unlock(wdev->hwbus_priv); in wfx_indirect_read32_locked()
200 static int wfx_indirect_write32_locked(struct wfx_dev *wdev, int reg, u32 addr, u32 val) in wfx_indirect_write32_locked() argument
208 wdev->hwbus_ops->lock(wdev->hwbus_priv); in wfx_indirect_write32_locked()
209 ret = wfx_indirect_write(wdev, reg, addr, tmp, sizeof(u32)); in wfx_indirect_write32_locked()
211 wdev->hwbus_ops->unlock(wdev->hwbus_priv); in wfx_indirect_write32_locked()
216 int wfx_data_read(struct wfx_dev *wdev, void *buf, size_t len) in wfx_data_read() argument
221 wdev->hwbus_ops->lock(wdev->hwbus_priv); in wfx_data_read()
222 ret = wdev->hwbus_ops->copy_from_io(wdev->hwbus_priv, WFX_REG_IN_OUT_QUEUE, buf, len); in wfx_data_read()
224 wdev->hwbus_ops->unlock(wdev->hwbus_priv); in wfx_data_read()
226 dev_err(wdev->dev, "%s: bus communication error: %d\n", __func__, ret); in wfx_data_read()
230 int wfx_data_write(struct wfx_dev *wdev, const void *buf, size_t len) in wfx_data_write() argument
235 wdev->hwbus_ops->lock(wdev->hwbus_priv); in wfx_data_write()
236 ret = wdev->hwbus_ops->copy_to_io(wdev->hwbus_priv, WFX_REG_IN_OUT_QUEUE, buf, len); in wfx_data_write()
238 wdev->hwbus_ops->unlock(wdev->hwbus_priv); in wfx_data_write()
240 dev_err(wdev->dev, "%s: bus communication error: %d\n", __func__, ret); in wfx_data_write()
244 int wfx_sram_buf_read(struct wfx_dev *wdev, u32 addr, void *buf, size_t len) in wfx_sram_buf_read() argument
246 return wfx_indirect_read_locked(wdev, WFX_REG_SRAM_DPORT, addr, buf, len); in wfx_sram_buf_read()
249 int wfx_ahb_buf_read(struct wfx_dev *wdev, u32 addr, void *buf, size_t len) in wfx_ahb_buf_read() argument
251 return wfx_indirect_read_locked(wdev, WFX_REG_AHB_DPORT, addr, buf, len); in wfx_ahb_buf_read()
254 int wfx_sram_buf_write(struct wfx_dev *wdev, u32 addr, const void *buf, size_t len) in wfx_sram_buf_write() argument
256 return wfx_indirect_write_locked(wdev, WFX_REG_SRAM_DPORT, addr, buf, len); in wfx_sram_buf_write()
259 int wfx_ahb_buf_write(struct wfx_dev *wdev, u32 addr, const void *buf, size_t len) in wfx_ahb_buf_write() argument
261 return wfx_indirect_write_locked(wdev, WFX_REG_AHB_DPORT, addr, buf, len); in wfx_ahb_buf_write()
264 int wfx_sram_reg_read(struct wfx_dev *wdev, u32 addr, u32 *val) in wfx_sram_reg_read() argument
266 return wfx_indirect_read32_locked(wdev, WFX_REG_SRAM_DPORT, addr, val); in wfx_sram_reg_read()
269 int wfx_ahb_reg_read(struct wfx_dev *wdev, u32 addr, u32 *val) in wfx_ahb_reg_read() argument
271 return wfx_indirect_read32_locked(wdev, WFX_REG_AHB_DPORT, addr, val); in wfx_ahb_reg_read()
274 int wfx_sram_reg_write(struct wfx_dev *wdev, u32 addr, u32 val) in wfx_sram_reg_write() argument
276 return wfx_indirect_write32_locked(wdev, WFX_REG_SRAM_DPORT, addr, val); in wfx_sram_reg_write()
279 int wfx_ahb_reg_write(struct wfx_dev *wdev, u32 addr, u32 val) in wfx_ahb_reg_write() argument
281 return wfx_indirect_write32_locked(wdev, WFX_REG_AHB_DPORT, addr, val); in wfx_ahb_reg_write()
284 int wfx_config_reg_read(struct wfx_dev *wdev, u32 *val) in wfx_config_reg_read() argument
286 return wfx_read32_locked(wdev, WFX_REG_CONFIG, val); in wfx_config_reg_read()
289 int wfx_config_reg_write(struct wfx_dev *wdev, u32 val) in wfx_config_reg_write() argument
291 return wfx_write32_locked(wdev, WFX_REG_CONFIG, val); in wfx_config_reg_write()
294 int wfx_config_reg_write_bits(struct wfx_dev *wdev, u32 mask, u32 val) in wfx_config_reg_write_bits() argument
296 return wfx_write32_bits_locked(wdev, WFX_REG_CONFIG, mask, val); in wfx_config_reg_write_bits()
299 int wfx_control_reg_read(struct wfx_dev *wdev, u32 *val) in wfx_control_reg_read() argument
301 return wfx_read32_locked(wdev, WFX_REG_CONTROL, val); in wfx_control_reg_read()
304 int wfx_control_reg_write(struct wfx_dev *wdev, u32 val) in wfx_control_reg_write() argument
306 return wfx_write32_locked(wdev, WFX_REG_CONTROL, val); in wfx_control_reg_write()
309 int wfx_control_reg_write_bits(struct wfx_dev *wdev, u32 mask, u32 val) in wfx_control_reg_write_bits() argument
311 return wfx_write32_bits_locked(wdev, WFX_REG_CONTROL, mask, val); in wfx_control_reg_write_bits()
314 int wfx_igpr_reg_read(struct wfx_dev *wdev, int index, u32 *val) in wfx_igpr_reg_read() argument
319 ret = wfx_write32_locked(wdev, WFX_REG_SET_GEN_R_W, IGPR_RW | index << 24); in wfx_igpr_reg_read()
322 ret = wfx_read32_locked(wdev, WFX_REG_SET_GEN_R_W, val); in wfx_igpr_reg_read()
329 int wfx_igpr_reg_write(struct wfx_dev *wdev, int index, u32 val) in wfx_igpr_reg_write() argument
331 return wfx_write32_locked(wdev, WFX_REG_SET_GEN_R_W, index << 24 | val); in wfx_igpr_reg_write()