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

Commit f87b2ed2 authored by David Woodhouse's avatar David Woodhouse
Browse files

solos: Swap upstream/downstream rates in status packet, clean up some more

parent eab50f73
Loading
Loading
Loading
Loading
+25 −26
Original line number Diff line number Diff line
@@ -314,14 +314,16 @@ static char *next_string(struct sk_buff *skb)
 * for the information therein. Fields are....
 *
 *     packet version
 *     TxBitRate	(version >= 1)
 *     RxBitRate	(version >= 1)
 *     TxBitRate	(version >= 1)
 *     State		(version >= 1)
 *     LocalSNRMargin	(version >= 1)
 *     LocalLineAttn	(version >= 1)
 */       
static int process_status(struct solos_card *card, int port, struct sk_buff *skb)
{
	char *str, *end, *state_str;
	int ver, rate_up, rate_down, state;
	char *str, *end, *state_str, *snr, *attn;
	int ver, rate_up, rate_down;

	if (!card->atmdev[port])
		return -ENODEV;
@@ -346,31 +348,28 @@ static int process_status(struct solos_card *card, int port, struct sk_buff *skb
		return 0;
	}

	rate_up = simple_strtol(str, &end, 10);
	rate_down = simple_strtol(str, &end, 10);
	if (*end)
		return -EIO;

	str = next_string(skb);
	if (!str)
		return -EIO;
	rate_down = simple_strtol(str, &end, 10);
	rate_up = simple_strtol(str, &end, 10);
	if (*end)
		return -EIO;

	state_str = next_string(skb);
	if (!state_str)
		return -EIO;
	if (!strcmp(state_str, "Showtime"))
		state = ATM_PHY_SIG_FOUND;
	else {
		state = ATM_PHY_SIG_LOST;
		release_vccs(card->atmdev[port]);
	}

	if (state == ATM_PHY_SIG_LOST) {
	/* Anything but 'Showtime' is down */
	if (strcmp(state_str, "Showtime")) {
		card->atmdev[port]->signal = ATM_PHY_SIG_LOST;
		release_vccs(card->atmdev[port]);
		dev_info(&card->dev->dev, "Port %d: %s\n", port, state_str);
	} else {
		char *snr, *attn;
		return 0;
	}

	snr = next_string(skb);
	if (!str)
@@ -382,9 +381,9 @@ static int process_status(struct solos_card *card, int port, struct sk_buff *skb
	dev_info(&card->dev->dev, "Port %d: %s @%d/%d kb/s%s%s%s%s\n",
		 port, state_str, rate_down/1000, rate_up/1000,
		 snr[0]?", SNR ":"", snr, attn[0]?", Attn ":"", attn);
	}		
	
	card->atmdev[port]->link_rate = rate_down / 424;
	card->atmdev[port]->signal = state;
	card->atmdev[port]->signal = ATM_PHY_SIG_FOUND;

	return 0;
}