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

Commit a7377a50 authored by Stephen Hemminger's avatar Stephen Hemminger Committed by Jeff Garzik
Browse files

[PATCH] chelsio: cleanup pm3393 code



Replace macro with function for updating RMON values

Cleanups:
	* remove unused enum's
	* Fix comment format

Signed-off-by: default avatarStephen HEmminger <shemminger@osdl.org>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 352c417d
Loading
Loading
Loading
Loading
+29 −40
Original line number Original line Diff line number Diff line
@@ -43,22 +43,6 @@
#include "elmer0.h"
#include "elmer0.h"
#include "suni1x10gexp_regs.h"
#include "suni1x10gexp_regs.h"


/* 802.3ae 10Gb/s MDIO Manageable Device(MMD)
 */
enum {
	MMD_RESERVED,
	MMD_PMAPMD,
	MMD_WIS,
	MMD_PCS,
	MMD_PHY_XGXS,	/* XGMII Extender Sublayer */
	MMD_DTE_XGXS,
};

enum {
	PHY_XGXS_CTRL_1,
	PHY_XGXS_STATUS_1
};

#define OFFSET(REG_ADDR)    (REG_ADDR << 2)
#define OFFSET(REG_ADDR)    (REG_ADDR << 2)


/* Max frame size PM3393 can handle. Includes Ethernet header and CRC. */
/* Max frame size PM3393 can handle. Includes Ethernet header and CRC. */
@@ -128,11 +112,11 @@ static int pm3393_reset(struct cmac *cmac)


/*
/*
 * Enable interrupts for the PM3393
 * Enable interrupts for the PM3393

 *
	1. Enable PM3393 BLOCK interrupts.
 *	1. Enable PM3393 BLOCK interrupts.
	2. Enable PM3393 Master Interrupt bit(INTE)
 *	2. Enable PM3393 Master Interrupt bit(INTE)
	3. Enable ELMER's PM3393 bit.
 *	3. Enable ELMER's PM3393 bit.
	4. Enable Terminator external interrupt.
 *	4. Enable Terminator external interrupt.
 */
 */
static int pm3393_interrupt_enable(struct cmac *cmac)
static int pm3393_interrupt_enable(struct cmac *cmac)
{
{
@@ -261,11 +245,7 @@ static int pm3393_interrupt_clear(struct cmac *cmac)
static int pm3393_interrupt_handler(struct cmac *cmac)
static int pm3393_interrupt_handler(struct cmac *cmac)
{
{
	u32 master_intr_status;
	u32 master_intr_status;
/*

	1. Read master interrupt register.
	2. Read BLOCK's interrupt status registers.
	3. Handle BLOCK interrupts.
*/
	/* Read the master interrupt status register. */
	/* Read the master interrupt status register. */
	pmread(cmac, SUNI1x10GEXP_REG_MASTER_INTERRUPT_STATUS,
	pmread(cmac, SUNI1x10GEXP_REG_MASTER_INTERRUPT_STATUS,
	       &master_intr_status);
	       &master_intr_status);
@@ -473,21 +453,30 @@ static int pm3393_set_speed_duplex_fc(struct cmac *cmac, int speed, int duplex,
	return 0;
	return 0;
}
}


#define RMON_UPDATE(mac, name, stat_name) \
static void pm3393_rmon_update(struct adapter *adapter, u32 offs, u64 *val,
	{ \
			       int over)
		t1_tpi_read((mac)->adapter, OFFSET(name), &val0);	\
{
		t1_tpi_read((mac)->adapter, OFFSET(((name)+1)), &val1); \
	u32 val0, val1, val2;
		t1_tpi_read((mac)->adapter, OFFSET(((name)+2)), &val2); \

		(mac)->stats.stat_name = ((u64)val0 & 0xffff) | \
	t1_tpi_read(adapter, offs, &val0);
						(((u64)val1 & 0xffff) << 16) | \
	t1_tpi_read(adapter, offs + 4, &val1);
						(((u64)val2 & 0xff) << 32) | \
	t1_tpi_read(adapter, offs + 8, &val2);
						((mac)->stats.stat_name & \

							(~(u64)0 << 40)); \
	*val &= ~0ull << 40;
		if (ro &	\
	*val |= val0 & 0xffff;
			((name -  SUNI1x10GEXP_REG_MSTAT_COUNTER_0_LOW) >> 2)) \
	*val |= (val1 & 0xffff) << 16;
			(mac)->stats.stat_name += ((u64)1 << 40); \
	*val |= (u64)(val2 & 0xff) << 32;

	if (over)
		*val += 1ull << 40;
}
}


#define RMON_UPDATE(mac, name, stat_name) \
	pm3393_rmon_update((mac)->adapter, OFFSET(name), 		\
			   &(mac)->stats.stat_name,			\
		   (ro &((name - SUNI1x10GEXP_REG_MSTAT_COUNTER_0_LOW) >> 2)))


static const struct cmac_statistics *pm3393_update_statistics(struct cmac *mac,
static const struct cmac_statistics *pm3393_update_statistics(struct cmac *mac,
							      int flag)
							      int flag)
{
{