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

Commit 01b7a471 authored by Jag Raman's avatar Jag Raman Committed by David S. Miller
Browse files

sparc64: skip handshake for LDC channels in RAW mode



LDC channels in RAW mode does not provide any session management. No
handshake protocol is defined for LDC channels in RAW mode. It's
therefore skipped.

Signed-off-by: default avatarJagannathan Raman <jag.raman@oracle.com>
Reviewed-by: default avatarLiam Merwick <liam.merwick@oracle.com>
Reviewed-by: default avatarShannon Nelson <shannon.nelson@oracle.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ac6bb025
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -1347,6 +1347,14 @@ int ldc_bind(struct ldc_channel *lp)
	lp->hs_state = LDC_HS_OPEN;
	ldc_set_state(lp, LDC_STATE_BOUND);

	if (lp->cfg.mode == LDC_MODE_RAW) {
		/*
		 * There is no handshake in RAW mode, so handshake
		 * is completed.
		 */
		lp->hs_state = LDC_HS_COMPLETE;
	}

	spin_unlock_irqrestore(&lp->lock, flags);

	return 0;
@@ -1460,11 +1468,13 @@ void ldc_set_state(struct ldc_channel *lp, u8 state)

	lp->state = state;
}
EXPORT_SYMBOL(ldc_set_state);

int ldc_mode(struct ldc_channel *lp)
{
	return lp->cfg.mode;
}
EXPORT_SYMBOL(ldc_mode);

int ldc_rx_reset(struct ldc_channel *lp)
{
+5 −1
Original line number Diff line number Diff line
@@ -776,7 +776,11 @@ void vio_port_up(struct vio_driver_state *vio)
	}

	if (!err) {
		if (ldc_mode(vio->lp) == LDC_MODE_RAW)
			ldc_set_state(vio->lp, LDC_STATE_CONNECTED);
		else
			err = ldc_connect(vio->lp);

		if (err)
			printk(KERN_WARNING "%s: Port %lu connect failed, "
			       "err=%d\n",