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

Commit b4552ace authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

i7300_edac: Cleanup: reorganize the file contents



This change should do no functional change. It just rearranges the
contents of the c file, in order to make easier to understand and
maintain it.

Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 37b69cf9
Loading
Loading
Loading
Loading
+60 −56
Original line number Original line Diff line number Diff line
@@ -41,6 +41,10 @@
#define i7300_mc_printk(mci, level, fmt, arg...) \
#define i7300_mc_printk(mci, level, fmt, arg...) \
	edac_mc_chipset_printk(mci, level, "i7300", fmt, ##arg)
	edac_mc_chipset_printk(mci, level, "i7300", fmt, ##arg)


/***********************************************
 * i7300 Limit constants Structs and static vars
 ***********************************************/

/*
/*
 * Memory topology is organized as:
 * Memory topology is organized as:
 *	Branch 0 - 2 channels: channels 0 and 1 (FDB0 PCI dev 21.0)
 *	Branch 0 - 2 channels: channels 0 and 1 (FDB0 PCI dev 21.0)
@@ -67,18 +71,64 @@
#define to_csrow(slot, ch, branch)					\
#define to_csrow(slot, ch, branch)					\
		(to_channel(ch, branch) | ((slot) << 2))
		(to_channel(ch, branch) | ((slot) << 2))


/* Device name and register DID (Device ID) */
struct i7300_dev_info {
	const char *ctl_name;	/* name for this device */
	u16 fsb_mapping_errors;	/* DID for the branchmap,control */
};

/* Table of devices attributes supported by this driver */
static const struct i7300_dev_info i7300_devs[] = {
	{
		.ctl_name = "I7300",
		.fsb_mapping_errors = PCI_DEVICE_ID_INTEL_I7300_MCH_ERR,
	},
};

struct i7300_dimm_info {
	int megabytes;		/* size, 0 means not present  */
};

/* driver private data structure */
struct i7300_pvt {
	struct pci_dev *pci_dev_16_0_fsb_ctlr;		/* 16.0 */
	struct pci_dev *pci_dev_16_1_fsb_addr_map;	/* 16.1 */
	struct pci_dev *pci_dev_16_2_fsb_err_regs;	/* 16.2 */
	struct pci_dev *pci_dev_2x_0_fbd_branch[MAX_BRANCHES];	/* 21.0  and 22.0 */

	u16 tolm;				/* top of low memory */
	u64 ambase;				/* AMB BAR */

	u32 mc_settings;			/* Report several settings */
	u32 mc_settings_a;

	u16 mir[MAX_MIR];			/* Memory Interleave Reg*/

	u16 mtr[MAX_SLOTS][MAX_BRANCHES];		/* Memory Technlogy Reg */
	u16 ambpresent[MAX_CHANNELS];		/* AMB present regs */

	/* DIMM information matrix, allocating architecture maximums */
	struct i7300_dimm_info dimm_info[MAX_SLOTS][MAX_CHANNELS];

	/* Temporary buffer for use when preparing error messages */
	char *tmp_prt_buffer;
};

/* FIXME: Why do we need to have this static? */
static struct edac_pci_ctl_info *i7300_pci;

/***************************************************
 * i7300 Register definitions for memory enumeration
 ***************************************************/

/*
/*
 * I7300 devices
 * I7300 devices:
 * All 3 functions of Device 16 (0,1,2) share the SAME DID and
 * All 3 functions of Device 16 (0,1,2) share the SAME DID and
 * uses PCI_DEVICE_ID_INTEL_I7300_MCH_ERR for device 16 (0,1,2),
 * uses PCI_DEVICE_ID_INTEL_I7300_MCH_ERR for device 16 (0,1,2).
 * PCI_DEVICE_ID_INTEL_I7300_MCH_FB0 and PCI_DEVICE_ID_INTEL_I7300_MCH_FB1
 * PCI_DEVICE_ID_INTEL_I7300_MCH_FB0 is used for device 21 (0,1)
 * for device 21 (0,1).
 * and PCI_DEVICE_ID_INTEL_I7300_MCH_FB1 is used for device 21 (0,1).
 */
 */


/****************************************************
 * i7300 Register definitions for memory enumberation
 ****************************************************/

/*
/*
 * Device 16,
 * Device 16,
 * Function 0: System Address (not documented)
 * Function 0: System Address (not documented)
@@ -125,7 +175,8 @@ const static u16 mtr_regs [MAX_SLOTS] = {
	0x82, 0x86, 0x8a, 0x8e
	0x82, 0x86, 0x8a, 0x8e
};
};


/* Defines to extract the vaious fields from the
/*
 * Defines to extract the vaious fields from the
 *	MTRx - Memory Technology Registers
 *	MTRx - Memory Technology Registers
 */
 */
#define MTR_DIMMS_PRESENT(mtr)		((mtr) & (1 << 8))
#define MTR_DIMMS_PRESENT(mtr)		((mtr) & (1 << 8))
@@ -290,53 +341,6 @@ static const char *ferr_global_lo_name[] = {
  #define RECMEMB_CAS(v)	(((v) >> 16) & 0x1fff)
  #define RECMEMB_CAS(v)	(((v) >> 16) & 0x1fff)
  #define RECMEMB_RAS(v)	((v) & 0xffff)
  #define RECMEMB_RAS(v)	((v) & 0xffff)



/* Device name and register DID (Device ID) */
struct i7300_dev_info {
	const char *ctl_name;	/* name for this device */
	u16 fsb_mapping_errors;	/* DID for the branchmap,control */
};

/* Table of devices attributes supported by this driver */
static const struct i7300_dev_info i7300_devs[] = {
	{
		.ctl_name = "I7300",
		.fsb_mapping_errors = PCI_DEVICE_ID_INTEL_I7300_MCH_ERR,
	},
};

struct i7300_dimm_info {
	int megabytes;		/* size, 0 means not present  */
};

/* driver private data structure */
struct i7300_pvt {
	struct pci_dev *pci_dev_16_0_fsb_ctlr;		/* 16.0 */
	struct pci_dev *pci_dev_16_1_fsb_addr_map;	/* 16.1 */
	struct pci_dev *pci_dev_16_2_fsb_err_regs;	/* 16.2 */
	struct pci_dev *pci_dev_2x_0_fbd_branch[MAX_BRANCHES];	/* 21.0  and 22.0 */

	u16 tolm;				/* top of low memory */
	u64 ambase;				/* AMB BAR */

	u32 mc_settings;			/* Report several settings */
	u32 mc_settings_a;

	u16 mir[MAX_MIR];			/* Memory Interleave Reg*/

	u16 mtr[MAX_SLOTS][MAX_BRANCHES];		/* Memory Technlogy Reg */
	u16 ambpresent[MAX_CHANNELS];		/* AMB present regs */

	/* DIMM information matrix, allocating architecture maximums */
	struct i7300_dimm_info dimm_info[MAX_SLOTS][MAX_CHANNELS];

	/* Temporary buffer for use when preparing error messages */
	char *tmp_prt_buffer;
};

/* FIXME: Why do we need to have this static? */
static struct edac_pci_ctl_info *i7300_pci;

/********************************************
/********************************************
 * i7300 Functions related to error detection
 * i7300 Functions related to error detection
 ********************************************/
 ********************************************/