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

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
Loading
Loading
Loading
Loading
+89 −41
Original line number Diff line number Diff line
@@ -329,7 +329,7 @@ void vnt_get_phy_field(struct vnt_private *priv, u32 frame_length,
 * 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) {
	case ANT_TXA:
@@ -344,7 +344,7 @@ void vnt_set_antenna_mode(struct vnt_private *priv, u8 antenna_mode)
		break;
	}

	vnt_control_out(priv, MESSAGE_TYPE_SET_ANTMD,
	return vnt_control_out(priv, MESSAGE_TYPE_SET_ANTMD,
			       (u16)antenna_mode, 0, 0, NULL);
}

@@ -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 status;
	int ret = 0;
	u16 length;
	u8 *addr;
	u8 *agc;
@@ -372,11 +372,10 @@ int vnt_vt3184_init(struct vnt_private *priv)
	u8 array[256];
	u8 data;

	status = vnt_control_in(priv, MESSAGE_TYPE_READ, 0,
				MESSAGE_REQUEST_EEPROM, EEP_MAX_CONTEXT_SIZE,
						priv->eeprom);
	if (status != STATUS_SUCCESS)
		return false;
	ret = vnt_control_in(priv, MESSAGE_TYPE_READ, 0, MESSAGE_REQUEST_EEPROM,
			     EEP_MAX_CONTEXT_SIZE, priv->eeprom);
	if (ret)
		goto end;

	priv->rf_type = priv->eeprom[EEP_OFS_RFTYPE];

@@ -423,8 +422,10 @@ int vnt_vt3184_init(struct vnt_private *priv)
		priv->bb_vga[3] = 0x0;

		/* 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);
		if (ret)
			goto end;
	} else if (priv->rf_type == RF_VT3342A0) {
		priv->bb_rx_conf = vnt_vt3184_vt3226d0[10];
		length = sizeof(vnt_vt3184_vt3226d0);
@@ -438,48 +439,74 @@ int vnt_vt3184_init(struct vnt_private *priv)
		priv->bb_vga[3] = 0x0;

		/* 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);
		if (ret)
			goto end;
	} else {
		return true;
		goto end;
	}

	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);
	if (ret)
		goto end;

	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);
	if (ret)
		goto end;

	if ((priv->rf_type == RF_VT3226) ||
	    (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);
		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) {
		vnt_control_out_u8(priv, MESSAGE_REQUEST_MACREG,
		ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_MACREG,
					 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);
	vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0d, 0x01);
	ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x04, 0x7f);
	if (ret)
		goto end;

	ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0d, 0x01);
	if (ret)
		goto end;

	vnt_rf_table_download(priv);
	ret = vnt_rf_table_download(priv);
	if (ret)
		goto end;

	/* 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);
	if (ret)
		goto end;

	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);

	return true;
end:
	return ret;
}

/*
@@ -494,8 +521,9 @@ int vnt_vt3184_init(struct vnt_private *priv)
 * 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;

	if (priv->short_slot_time)
@@ -503,12 +531,18 @@ void vnt_set_short_slot_time(struct vnt_private *priv)
	else
		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])
		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)
@@ -536,16 +570,30 @@ void vnt_set_vga_gain_offset(struct vnt_private *priv, u8 data)
 * 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 */
	vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0d, 0xB9);/* CR13 */
	int ret = 0;

	/* 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 */
	vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0d, 0x01);/* CR13 */
	int ret = 0;

	/* 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)
+4 −4
Original line number Diff line number Diff line
@@ -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,
		       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_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);
void vnt_set_deep_sleep(struct vnt_private *priv);
void vnt_exit_deep_sleep(struct vnt_private *priv);
int vnt_set_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);

#endif /* __BASEBAND_H__ */
+14 −6
Original line number Diff line number Diff line
@@ -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 ret = true;
	int ret = 0;

	switch (priv->rf_type) {
	case RF_AL2230:
@@ -683,17 +683,25 @@ int vnt_radio_power_off(struct vnt_private *priv)
	case RF_VT3226:
	case RF_VT3226D0:
	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));
		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;
}

+5 −3
Original line number Diff line number Diff line
@@ -39,18 +39,20 @@ static const u8 fallback_rate1[5][5] = {
	{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;
	int status;

	dev_dbg(&priv->usb->dev, "---->Interrupt Polling Thread\n");

	spin_lock_irqsave(&priv->lock, flags);

	status = vnt_start_interrupt_urb(priv);
	ret = vnt_start_interrupt_urb(priv);

	spin_unlock_irqrestore(&priv->lock, flags);

	return ret;
}

static int vnt_int_report_rate(struct vnt_private *priv, u8 pkt_no, u8 tsr)
+1 −1
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ struct vnt_interrupt_data {
	u8 sw[2];
} __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);

#endif /* __INT_H__ */
Loading