Commit 7156f7d9 authored by Quentin Deslandes's avatar Quentin Deslandes Committed by Greg Kroah-Hartman

staging: vt6656: avoid discarding called function's return code

Change some of the driver's functions in order to handle error codes
instead of discarding them. These function now returns 0 on success and
a negative errno value on error.
Signed-off-by: default avatarQuentin Deslandes <quentin.deslandes@itdev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 59608cb1
...@@ -329,7 +329,7 @@ void vnt_get_phy_field(struct vnt_private *priv, u32 frame_length, ...@@ -329,7 +329,7 @@ void vnt_get_phy_field(struct vnt_private *priv, u32 frame_length,
* Return Value: none * Return Value: none
* *
*/ */
void vnt_set_antenna_mode(struct vnt_private *priv, u8 antenna_mode) int vnt_set_antenna_mode(struct vnt_private *priv, u8 antenna_mode)
{ {
switch (antenna_mode) { switch (antenna_mode) {
case ANT_TXA: case ANT_TXA:
...@@ -344,8 +344,8 @@ void vnt_set_antenna_mode(struct vnt_private *priv, u8 antenna_mode) ...@@ -344,8 +344,8 @@ void vnt_set_antenna_mode(struct vnt_private *priv, u8 antenna_mode)
break; break;
} }
vnt_control_out(priv, MESSAGE_TYPE_SET_ANTMD, return vnt_control_out(priv, MESSAGE_TYPE_SET_ANTMD,
(u16)antenna_mode, 0, 0, NULL); (u16)antenna_mode, 0, 0, NULL);
} }
/* /*
...@@ -364,7 +364,7 @@ void vnt_set_antenna_mode(struct vnt_private *priv, u8 antenna_mode) ...@@ -364,7 +364,7 @@ void vnt_set_antenna_mode(struct vnt_private *priv, u8 antenna_mode)
int vnt_vt3184_init(struct vnt_private *priv) int vnt_vt3184_init(struct vnt_private *priv)
{ {
int status; int ret = 0;
u16 length; u16 length;
u8 *addr; u8 *addr;
u8 *agc; u8 *agc;
...@@ -372,11 +372,10 @@ int vnt_vt3184_init(struct vnt_private *priv) ...@@ -372,11 +372,10 @@ int vnt_vt3184_init(struct vnt_private *priv)
u8 array[256]; u8 array[256];
u8 data; u8 data;
status = vnt_control_in(priv, MESSAGE_TYPE_READ, 0, ret = vnt_control_in(priv, MESSAGE_TYPE_READ, 0, MESSAGE_REQUEST_EEPROM,
MESSAGE_REQUEST_EEPROM, EEP_MAX_CONTEXT_SIZE, EEP_MAX_CONTEXT_SIZE, priv->eeprom);
priv->eeprom); if (ret)
if (status != STATUS_SUCCESS) goto end;
return false;
priv->rf_type = priv->eeprom[EEP_OFS_RFTYPE]; priv->rf_type = priv->eeprom[EEP_OFS_RFTYPE];
...@@ -423,8 +422,10 @@ int vnt_vt3184_init(struct vnt_private *priv) ...@@ -423,8 +422,10 @@ int vnt_vt3184_init(struct vnt_private *priv)
priv->bb_vga[3] = 0x0; priv->bb_vga[3] = 0x0;
/* Fix VT3226 DFC system timing issue */ /* Fix VT3226 DFC system timing issue */
vnt_mac_reg_bits_on(priv, MAC_REG_SOFTPWRCTL2, ret = vnt_mac_reg_bits_on(priv, MAC_REG_SOFTPWRCTL2,
SOFTPWRCTL_RFLEOPT); SOFTPWRCTL_RFLEOPT);
if (ret)
goto end;
} else if (priv->rf_type == RF_VT3342A0) { } else if (priv->rf_type == RF_VT3342A0) {
priv->bb_rx_conf = vnt_vt3184_vt3226d0[10]; priv->bb_rx_conf = vnt_vt3184_vt3226d0[10];
length = sizeof(vnt_vt3184_vt3226d0); length = sizeof(vnt_vt3184_vt3226d0);
...@@ -438,48 +439,74 @@ int vnt_vt3184_init(struct vnt_private *priv) ...@@ -438,48 +439,74 @@ int vnt_vt3184_init(struct vnt_private *priv)
priv->bb_vga[3] = 0x0; priv->bb_vga[3] = 0x0;
/* Fix VT3226 DFC system timing issue */ /* Fix VT3226 DFC system timing issue */
vnt_mac_reg_bits_on(priv, MAC_REG_SOFTPWRCTL2, ret = vnt_mac_reg_bits_on(priv, MAC_REG_SOFTPWRCTL2,
SOFTPWRCTL_RFLEOPT); SOFTPWRCTL_RFLEOPT);
if (ret)
goto end;
} else { } else {
return true; goto end;
} }
memcpy(array, addr, length); memcpy(array, addr, length);
vnt_control_out(priv, MESSAGE_TYPE_WRITE, 0, ret = vnt_control_out(priv, MESSAGE_TYPE_WRITE, 0,
MESSAGE_REQUEST_BBREG, length, array); MESSAGE_REQUEST_BBREG, length, array);
if (ret)
goto end;
memcpy(array, agc, length_agc); memcpy(array, agc, length_agc);
vnt_control_out(priv, MESSAGE_TYPE_WRITE, 0, ret = vnt_control_out(priv, MESSAGE_TYPE_WRITE, 0,
MESSAGE_REQUEST_BBAGC, length_agc, array); MESSAGE_REQUEST_BBAGC, length_agc, array);
if (ret)
goto end;
if ((priv->rf_type == RF_VT3226) || if ((priv->rf_type == RF_VT3226) ||
(priv->rf_type == RF_VT3342A0)) { (priv->rf_type == RF_VT3342A0)) {
vnt_control_out_u8(priv, MESSAGE_REQUEST_MACREG, ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_MACREG,
MAC_REG_ITRTMSET, 0x23); MAC_REG_ITRTMSET, 0x23);
vnt_mac_reg_bits_on(priv, MAC_REG_PAPEDELAY, 0x01); if (ret)
goto end;
ret = vnt_mac_reg_bits_on(priv, MAC_REG_PAPEDELAY, 0x01);
if (ret)
goto end;
} else if (priv->rf_type == RF_VT3226D0) { } else if (priv->rf_type == RF_VT3226D0) {
vnt_control_out_u8(priv, MESSAGE_REQUEST_MACREG, ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_MACREG,
MAC_REG_ITRTMSET, 0x11); MAC_REG_ITRTMSET, 0x11);
vnt_mac_reg_bits_on(priv, MAC_REG_PAPEDELAY, 0x01); if (ret)
goto end;
ret = vnt_mac_reg_bits_on(priv, MAC_REG_PAPEDELAY, 0x01);
if (ret)
goto end;
} }
vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x04, 0x7f); ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x04, 0x7f);
vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0d, 0x01); if (ret)
goto end;
vnt_rf_table_download(priv); ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0d, 0x01);
if (ret)
goto end;
ret = vnt_rf_table_download(priv);
if (ret)
goto end;
/* Fix for TX USB resets from vendors driver */ /* Fix for TX USB resets from vendors driver */
vnt_control_in(priv, MESSAGE_TYPE_READ, USB_REG4, ret = vnt_control_in(priv, MESSAGE_TYPE_READ, USB_REG4,
MESSAGE_REQUEST_MEM, sizeof(data), &data); MESSAGE_REQUEST_MEM, sizeof(data), &data);
if (ret)
goto end;
data |= 0x2; data |= 0x2;
vnt_control_out(priv, MESSAGE_TYPE_WRITE, USB_REG4, ret = vnt_control_out(priv, MESSAGE_TYPE_WRITE, USB_REG4,
MESSAGE_REQUEST_MEM, sizeof(data), &data); MESSAGE_REQUEST_MEM, sizeof(data), &data);
return true; end:
return ret;
} }
/* /*
...@@ -494,8 +521,9 @@ int vnt_vt3184_init(struct vnt_private *priv) ...@@ -494,8 +521,9 @@ int vnt_vt3184_init(struct vnt_private *priv)
* Return Value: none * Return Value: none
* *
*/ */
void vnt_set_short_slot_time(struct vnt_private *priv) int vnt_set_short_slot_time(struct vnt_private *priv)
{ {
int ret = 0;
u8 bb_vga = 0; u8 bb_vga = 0;
if (priv->short_slot_time) if (priv->short_slot_time)
...@@ -503,12 +531,18 @@ void vnt_set_short_slot_time(struct vnt_private *priv) ...@@ -503,12 +531,18 @@ void vnt_set_short_slot_time(struct vnt_private *priv)
else else
priv->bb_rx_conf |= 0x20; priv->bb_rx_conf |= 0x20;
vnt_control_in_u8(priv, MESSAGE_REQUEST_BBREG, 0xe7, &bb_vga); ret = vnt_control_in_u8(priv, MESSAGE_REQUEST_BBREG, 0xe7, &bb_vga);
if (ret)
goto end;
if (bb_vga == priv->bb_vga[0]) if (bb_vga == priv->bb_vga[0])
priv->bb_rx_conf |= 0x20; priv->bb_rx_conf |= 0x20;
vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0a, priv->bb_rx_conf); ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0a,
priv->bb_rx_conf);
end:
return ret;
} }
void vnt_set_vga_gain_offset(struct vnt_private *priv, u8 data) void vnt_set_vga_gain_offset(struct vnt_private *priv, u8 data)
...@@ -536,16 +570,30 @@ void vnt_set_vga_gain_offset(struct vnt_private *priv, u8 data) ...@@ -536,16 +570,30 @@ void vnt_set_vga_gain_offset(struct vnt_private *priv, u8 data)
* Return Value: none * Return Value: none
* *
*/ */
void vnt_set_deep_sleep(struct vnt_private *priv) int vnt_set_deep_sleep(struct vnt_private *priv)
{ {
vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0c, 0x17);/* CR12 */ int ret = 0;
vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0d, 0xB9);/* CR13 */
/* CR12 */
ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0c, 0x17);
if (ret)
return ret;
/* CR13 */
return vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0d, 0xB9);
} }
void vnt_exit_deep_sleep(struct vnt_private *priv) int vnt_exit_deep_sleep(struct vnt_private *priv)
{ {
vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0c, 0x00);/* CR12 */ int ret = 0;
vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0d, 0x01);/* CR13 */
/* CR12 */
ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0c, 0x00);
if (ret)
return ret;
/* CR13 */
return vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0d, 0x01);
} }
void vnt_update_pre_ed_threshold(struct vnt_private *priv, int scanning) void vnt_update_pre_ed_threshold(struct vnt_private *priv, int scanning)
......
...@@ -79,12 +79,12 @@ unsigned int vnt_get_frame_time(u8 preamble_type, u8 pkt_type, ...@@ -79,12 +79,12 @@ unsigned int vnt_get_frame_time(u8 preamble_type, u8 pkt_type,
void vnt_get_phy_field(struct vnt_private *priv, u32 frame_length, void vnt_get_phy_field(struct vnt_private *priv, u32 frame_length,
u16 tx_rate, u8 pkt_type, struct vnt_phy_field *phy); u16 tx_rate, u8 pkt_type, struct vnt_phy_field *phy);
void vnt_set_short_slot_time(struct vnt_private *priv); int vnt_set_short_slot_time(struct vnt_private *priv);
void vnt_set_vga_gain_offset(struct vnt_private *priv, u8 data); void vnt_set_vga_gain_offset(struct vnt_private *priv, u8 data);
void vnt_set_antenna_mode(struct vnt_private *priv, u8 antenna_mode); int vnt_set_antenna_mode(struct vnt_private *priv, u8 antenna_mode);
int vnt_vt3184_init(struct vnt_private *priv); int vnt_vt3184_init(struct vnt_private *priv);
void vnt_set_deep_sleep(struct vnt_private *priv); int vnt_set_deep_sleep(struct vnt_private *priv);
void vnt_exit_deep_sleep(struct vnt_private *priv); int vnt_exit_deep_sleep(struct vnt_private *priv);
void vnt_update_pre_ed_threshold(struct vnt_private *priv, int scanning); void vnt_update_pre_ed_threshold(struct vnt_private *priv, int scanning);
#endif /* __BASEBAND_H__ */ #endif /* __BASEBAND_H__ */
...@@ -674,7 +674,7 @@ void vnt_update_next_tbtt(struct vnt_private *priv, u64 tsf, ...@@ -674,7 +674,7 @@ void vnt_update_next_tbtt(struct vnt_private *priv, u64 tsf,
*/ */
int vnt_radio_power_off(struct vnt_private *priv) int vnt_radio_power_off(struct vnt_private *priv)
{ {
int ret = true; int ret = 0;
switch (priv->rf_type) { switch (priv->rf_type) {
case RF_AL2230: case RF_AL2230:
...@@ -683,17 +683,25 @@ int vnt_radio_power_off(struct vnt_private *priv) ...@@ -683,17 +683,25 @@ int vnt_radio_power_off(struct vnt_private *priv)
case RF_VT3226: case RF_VT3226:
case RF_VT3226D0: case RF_VT3226D0:
case RF_VT3342A0: case RF_VT3342A0:
vnt_mac_reg_bits_off(priv, MAC_REG_SOFTPWRCTL, ret = vnt_mac_reg_bits_off(priv, MAC_REG_SOFTPWRCTL,
(SOFTPWRCTL_SWPE2 | SOFTPWRCTL_SWPE3)); (SOFTPWRCTL_SWPE2 | SOFTPWRCTL_SWPE3));
break; break;
} }
vnt_mac_reg_bits_off(priv, MAC_REG_HOSTCR, HOSTCR_RXON); if (ret)
goto end;
ret = vnt_mac_reg_bits_off(priv, MAC_REG_HOSTCR, HOSTCR_RXON);
if (ret)
goto end;
vnt_set_deep_sleep(priv); ret = vnt_set_deep_sleep(priv);
if (ret)
goto end;
vnt_mac_reg_bits_on(priv, MAC_REG_GPIOCTL1, GPIO3_INTMD); ret = vnt_mac_reg_bits_on(priv, MAC_REG_GPIOCTL1, GPIO3_INTMD);
end:
return ret; return ret;
} }
......
...@@ -39,18 +39,20 @@ static const u8 fallback_rate1[5][5] = { ...@@ -39,18 +39,20 @@ static const u8 fallback_rate1[5][5] = {
{RATE_54M, RATE_54M, RATE_36M, RATE_18M, RATE_18M} {RATE_54M, RATE_54M, RATE_36M, RATE_18M, RATE_18M}
}; };
void vnt_int_start_interrupt(struct vnt_private *priv) int vnt_int_start_interrupt(struct vnt_private *priv)
{ {
int ret = 0;
unsigned long flags; unsigned long flags;
int status;
dev_dbg(&priv->usb->dev, "---->Interrupt Polling Thread\n"); dev_dbg(&priv->usb->dev, "---->Interrupt Polling Thread\n");
spin_lock_irqsave(&priv->lock, flags); spin_lock_irqsave(&priv->lock, flags);
status = vnt_start_interrupt_urb(priv); ret = vnt_start_interrupt_urb(priv);
spin_unlock_irqrestore(&priv->lock, flags); spin_unlock_irqrestore(&priv->lock, flags);
return ret;
} }
static int vnt_int_report_rate(struct vnt_private *priv, u8 pkt_no, u8 tsr) static int vnt_int_report_rate(struct vnt_private *priv, u8 pkt_no, u8 tsr)
......
...@@ -41,7 +41,7 @@ struct vnt_interrupt_data { ...@@ -41,7 +41,7 @@ struct vnt_interrupt_data {
u8 sw[2]; u8 sw[2];
} __packed; } __packed;
void vnt_int_start_interrupt(struct vnt_private *priv); int vnt_int_start_interrupt(struct vnt_private *priv);
void vnt_int_process_data(struct vnt_private *priv); void vnt_int_process_data(struct vnt_private *priv);
#endif /* __INT_H__ */ #endif /* __INT_H__ */
...@@ -129,27 +129,26 @@ void vnt_mac_set_keyentry(struct vnt_private *priv, u16 key_ctl, u32 entry_idx, ...@@ -129,27 +129,26 @@ void vnt_mac_set_keyentry(struct vnt_private *priv, u16 key_ctl, u32 entry_idx,
(u8 *)&set_key); (u8 *)&set_key);
} }
void vnt_mac_reg_bits_off(struct vnt_private *priv, u8 reg_ofs, u8 bits) int vnt_mac_reg_bits_off(struct vnt_private *priv, u8 reg_ofs, u8 bits)
{ {
u8 data[2]; u8 data[2];
data[0] = 0; data[0] = 0;
data[1] = bits; data[1] = bits;
vnt_control_out(priv, MESSAGE_TYPE_WRITE_MASK, return vnt_control_out(priv, MESSAGE_TYPE_WRITE_MASK, reg_ofs,
reg_ofs, MESSAGE_REQUEST_MACREG, ARRAY_SIZE(data), MESSAGE_REQUEST_MACREG, ARRAY_SIZE(data), data);
data);
} }
void vnt_mac_reg_bits_on(struct vnt_private *priv, u8 reg_ofs, u8 bits) int vnt_mac_reg_bits_on(struct vnt_private *priv, u8 reg_ofs, u8 bits)
{ {
u8 data[2]; u8 data[2];
data[0] = bits; data[0] = bits;
data[1] = bits; data[1] = bits;
vnt_control_out(priv, MESSAGE_TYPE_WRITE_MASK, reg_ofs, return vnt_control_out(priv, MESSAGE_TYPE_WRITE_MASK, reg_ofs,
MESSAGE_REQUEST_MACREG, ARRAY_SIZE(data), data); MESSAGE_REQUEST_MACREG, ARRAY_SIZE(data), data);
} }
void vnt_mac_write_word(struct vnt_private *priv, u8 reg_ofs, u16 word) void vnt_mac_write_word(struct vnt_private *priv, u8 reg_ofs, u16 word)
...@@ -224,13 +223,13 @@ void vnt_mac_set_beacon_interval(struct vnt_private *priv, u16 interval) ...@@ -224,13 +223,13 @@ void vnt_mac_set_beacon_interval(struct vnt_private *priv, u16 interval)
MESSAGE_REQUEST_MACREG, ARRAY_SIZE(data), data); MESSAGE_REQUEST_MACREG, ARRAY_SIZE(data), data);
} }
void vnt_mac_set_led(struct vnt_private *priv, u8 state, u8 led) int vnt_mac_set_led(struct vnt_private *priv, u8 state, u8 led)
{ {
u8 data[2]; u8 data[2];
data[0] = led; data[0] = led;
data[1] = state; data[1] = state;
vnt_control_out(priv, MESSAGE_TYPE_WRITE_MASK, MAC_REG_PAPEDELAY, return vnt_control_out(priv, MESSAGE_TYPE_WRITE_MASK, MAC_REG_PAPEDELAY,
MESSAGE_REQUEST_MACREG, ARRAY_SIZE(data), data); MESSAGE_REQUEST_MACREG, ARRAY_SIZE(data), data);
} }
...@@ -360,8 +360,8 @@ void vnt_mac_set_bb_type(struct vnt_private *priv, u8 type); ...@@ -360,8 +360,8 @@ void vnt_mac_set_bb_type(struct vnt_private *priv, u8 type);
void vnt_mac_disable_keyentry(struct vnt_private *priv, u8 entry_idx); void vnt_mac_disable_keyentry(struct vnt_private *priv, u8 entry_idx);
void vnt_mac_set_keyentry(struct vnt_private *priv, u16 key_ctl, u32 entry_idx, void vnt_mac_set_keyentry(struct vnt_private *priv, u16 key_ctl, u32 entry_idx,
u32 key_idx, u8 *addr, u8 *key); u32 key_idx, u8 *addr, u8 *key);
void vnt_mac_reg_bits_off(struct vnt_private *priv, u8 reg_ofs, u8 bits); int vnt_mac_reg_bits_off(struct vnt_private *priv, u8 reg_ofs, u8 bits);
void vnt_mac_reg_bits_on(struct vnt_private *priv, u8 reg_ofs, u8 bits); int vnt_mac_reg_bits_on(struct vnt_private *priv, u8 reg_ofs, u8 bits);
void vnt_mac_write_word(struct vnt_private *priv, u8 reg_ofs, u16 word); void vnt_mac_write_word(struct vnt_private *priv, u8 reg_ofs, u16 word);
void vnt_mac_set_bssid_addr(struct vnt_private *priv, u8 *addr); void vnt_mac_set_bssid_addr(struct vnt_private *priv, u8 *addr);
void vnt_mac_enable_protect_mode(struct vnt_private *priv); void vnt_mac_enable_protect_mode(struct vnt_private *priv);
...@@ -369,6 +369,6 @@ void vnt_mac_disable_protect_mode(struct vnt_private *priv); ...@@ -369,6 +369,6 @@ void vnt_mac_disable_protect_mode(struct vnt_private *priv);
void vnt_mac_enable_barker_preamble_mode(struct vnt_private *priv); void vnt_mac_enable_barker_preamble_mode(struct vnt_private *priv);
void vnt_mac_disable_barker_preamble_mode(struct vnt_private *priv); void vnt_mac_disable_barker_preamble_mode(struct vnt_private *priv);
void vnt_mac_set_beacon_interval(struct vnt_private *priv, u16 interval); void vnt_mac_set_beacon_interval(struct vnt_private *priv, u16 interval);
void vnt_mac_set_led(struct vnt_private *privpriv, u8 state, u8 led); int vnt_mac_set_led(struct vnt_private *privpriv, u8 state, u8 led);
#endif /* __MAC_H__ */ #endif /* __MAC_H__ */
...@@ -811,8 +811,9 @@ void vnt_rf_rssi_to_dbm(struct vnt_private *priv, u8 rssi, long *dbm) ...@@ -811,8 +811,9 @@ void vnt_rf_rssi_to_dbm(struct vnt_private *priv, u8 rssi, long *dbm)
*dbm = -1 * (a + b * 2); *dbm = -1 * (a + b * 2);
} }
void vnt_rf_table_download(struct vnt_private *priv) int vnt_rf_table_download(struct vnt_private *priv)
{ {
int ret = 0;
u16 length1 = 0, length2 = 0, length3 = 0; u16 length1 = 0, length2 = 0, length3 = 0;
u8 *addr1 = NULL, *addr2 = NULL, *addr3 = NULL; u8 *addr1 = NULL, *addr2 = NULL, *addr3 = NULL;
u16 length, value; u16 length, value;
...@@ -865,8 +866,10 @@ void vnt_rf_table_download(struct vnt_private *priv) ...@@ -865,8 +866,10 @@ void vnt_rf_table_download(struct vnt_private *priv)
/* Init Table */ /* Init Table */
memcpy(array, addr1, length1); memcpy(array, addr1, length1);
vnt_control_out(priv, MESSAGE_TYPE_WRITE, 0, ret = vnt_control_out(priv, MESSAGE_TYPE_WRITE, 0,
MESSAGE_REQUEST_RF_INIT, length1, array); MESSAGE_REQUEST_RF_INIT, length1, array);
if (ret)
goto end;
/* Channel Table 0 */ /* Channel Table 0 */
value = 0; value = 0;
...@@ -878,8 +881,10 @@ void vnt_rf_table_download(struct vnt_private *priv) ...@@ -878,8 +881,10 @@ void vnt_rf_table_download(struct vnt_private *priv)
memcpy(array, addr2, length); memcpy(array, addr2, length);
vnt_control_out(priv, MESSAGE_TYPE_WRITE, ret = vnt_control_out(priv, MESSAGE_TYPE_WRITE, value,
value, MESSAGE_REQUEST_RF_CH0, length, array); MESSAGE_REQUEST_RF_CH0, length, array);
if (ret)
goto end;
length2 -= length; length2 -= length;
value += length; value += length;
...@@ -896,8 +901,10 @@ void vnt_rf_table_download(struct vnt_private *priv) ...@@ -896,8 +901,10 @@ void vnt_rf_table_download(struct vnt_private *priv)
memcpy(array, addr3, length); memcpy(array, addr3, length);
vnt_control_out(priv, MESSAGE_TYPE_WRITE, ret = vnt_control_out(priv, MESSAGE_TYPE_WRITE, value,
value, MESSAGE_REQUEST_RF_CH1, length, array); MESSAGE_REQUEST_RF_CH1, length, array);
if (ret)
goto end;
length3 -= length; length3 -= length;
value += length; value += length;
...@@ -913,8 +920,10 @@ void vnt_rf_table_download(struct vnt_private *priv) ...@@ -913,8 +920,10 @@ void vnt_rf_table_download(struct vnt_private *priv)
memcpy(array, addr1, length1); memcpy(array, addr1, length1);
/* Init Table 2 */ /* Init Table 2 */
vnt_control_out(priv, MESSAGE_TYPE_WRITE, ret = vnt_control_out(priv, MESSAGE_TYPE_WRITE, 0,
0, MESSAGE_REQUEST_RF_INIT2, length1, array); MESSAGE_REQUEST_RF_INIT2, length1, array);
if (ret)
goto end;
/* Channel Table 0 */ /* Channel Table 0 */
value = 0; value = 0;
...@@ -926,13 +935,18 @@ void vnt_rf_table_download(struct vnt_private *priv) ...@@ -926,13 +935,18 @@ void vnt_rf_table_download(struct vnt_private *priv)
memcpy(array, addr2, length); memcpy(array, addr2, length);
vnt_control_out(priv, MESSAGE_TYPE_WRITE, ret = vnt_control_out(priv, MESSAGE_TYPE_WRITE, value,
value, MESSAGE_REQUEST_RF_CH2, MESSAGE_REQUEST_RF_CH2, length,
length, array); array);
if (ret)
goto end;
length2 -= length; length2 -= length;
value += length; value += length;
addr2 += length; addr2 += length;
} }
} }
end:
return ret;
} }
...@@ -44,6 +44,6 @@ int vnt_rf_write_embedded(struct vnt_private *priv, u32 data); ...@@ -44,6 +44,6 @@ int vnt_rf_write_embedded(struct vnt_private *priv, u32 data);
int vnt_rf_setpower(struct vnt_private *priv, u32 rate, u32 channel); int vnt_rf_setpower(struct vnt_private *priv, u32 rate, u32 channel);
int vnt_rf_set_txpower(struct vnt_private *priv, u8 power, u32 rate); int vnt_rf_set_txpower(struct vnt_private *priv, u8 power, u32 rate);
void vnt_rf_rssi_to_dbm(struct vnt_private *priv, u8 rssi, long *dbm); void vnt_rf_rssi_to_dbm(struct vnt_private *priv, u8 rssi, long *dbm);
void vnt_rf_table_download(struct vnt_private *priv); int vnt_rf_table_download(struct vnt_private *priv);
#endif /* __RF_H__ */ #endif /* __RF_H__ */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment