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

Commit 61aa21f2 authored by Alan Cox's avatar Alan Cox Committed by Greg Kroah-Hartman
Browse files

Staging: et131x: Clean up the rx status word types

parent dc26ffc7
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -797,21 +797,19 @@ PMP_RFD nic_rx_pkts(struct et131x_adapter *etdev)
	uint16_t bindex;
	u32 len;
	PKT_STAT_DESC_WORD0_t Word0;
	u32 word1;

	/* RX Status block is written by the DMA engine prior to every
	 * interrupt. It contains the next to be used entry in the Packet
	 * Status Ring, and also the two Free Buffer rings.
	 */
	status = (PRX_STATUS_BLOCK_t) rx_local->pRxStatusVa;
	word1 = status->Word1 >> 16;	/* Get the useful bits */

	/* FIXME: tidy later when conversions complete */
	if (status->Word1.bits.PSRoffset ==
			(rx_local->local_psr_full & 0xFFF) &&
			status->Word1.bits.PSRwrap ==
			((rx_local->local_psr_full >> 12) & 1)) {
	/* Check the PSR and wrap bits do not match */
	if ((word1 & 0x1FFF) == (rx_local->local_psr_full & 0x1FFF))
		/* Looks like this ring is not updated yet */
		return NULL;
	}

	/* The packet status ring indicates that data is available. */
	psr = (PPKT_STAT_DESC_t) (rx_local->pPSRingVa) +
+6 −22
Original line number Diff line number Diff line
@@ -211,36 +211,20 @@ typedef struct _PKT_STAT_DESC_t {
 * RXSTAT_WORD1_t structure holds part of the status bits of the Rx DMA engine
 * that get copied out to memory by the ET-1310.  Word 3 is a 32 bit word
 * which contains the Packet Status Ring available offset.
 *
 * bit 0-15 reserved
 * bit 16-27 PSRoffset
 * bit 28 PSRwrap
 * bit 29-31 unused
 */

#define RXSTAT1_OFFSET	16
#define RXSTAT1_MASK	0xFFF
#define RXSTAT1_WRAP	0x10000000

typedef union _rxstat_word1_t {
	u32 value;
	struct {
#ifdef _BIT_FIELDS_HTOL
		u32 PSRunused:3;	/* bits 29-31 */
		u32 PSRwrap:1;	/* bit 28 */
		u32 PSRoffset:12;	/* bits 16-27 */
		u32 reserved:16;	/* bits 0-15 */
#else
		u32 reserved:16;	/* bits 0-15 */
		u32 PSRoffset:12;	/* bits 16-27 */
		u32 PSRwrap:1;	/* bit 28 */
		u32 PSRunused:3;	/* bits 29-31 */
#endif
	} bits;
} RXSTAT_WORD1_t, *PRXSTAT_WORD1_t;

/*
 * RX_STATUS_BLOCK_t is sructure representing the status of the Rx DMA engine
 * it sits in free memory, and is pointed to by 0x101c / 0x1020
 */
typedef struct _rx_status_block_t {
	u32 Word0;
	RXSTAT_WORD1_t Word1;
	u32 Word1;
} RX_STATUS_BLOCK_t, *PRX_STATUS_BLOCK_t;

/*