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

Commit 63b5d1d9 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

r82600_edac: convert driver to use the new edac ABI



The legacy edac ABI is going to be removed. Port the driver to use
and benefit from the new API functionality.

Cc: Tim Small <tim@buttersideup.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 94d93374
Loading
Loading
Loading
Loading
+18 −9
Original line number Diff line number Diff line
@@ -179,10 +179,11 @@ static int r82600_process_error_info(struct mem_ctl_info *mci,
		error_found = 1;

		if (handle_errors)
			edac_mc_handle_ce(mci, page, 0,	/* not avail */
					syndrome,
			edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
					     page, 0, syndrome,
					     edac_mc_find_csrow_by_page(mci, page),
					0, mci->ctl_name);
					     0, -1,
					     mci->ctl_name, "", NULL);
	}

	if (info->eapr & BIT(1)) {	/* UE? */
@@ -190,9 +191,11 @@ static int r82600_process_error_info(struct mem_ctl_info *mci,

		if (handle_errors)
			/* 82600 doesn't give enough info */
			edac_mc_handle_ue(mci, page, 0,
			edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
					     page, 0, 0,
					     edac_mc_find_csrow_by_page(mci, page),
					mci->ctl_name);
					     0, -1,
					     mci->ctl_name, "", NULL);
	}

	return error_found;
@@ -267,6 +270,7 @@ static void r82600_init_csrows(struct mem_ctl_info *mci, struct pci_dev *pdev,
static int r82600_probe1(struct pci_dev *pdev, int dev_idx)
{
	struct mem_ctl_info *mci;
	struct edac_mc_layer layers[2];
	u8 dramcr;
	u32 eapr;
	u32 scrub_disabled;
@@ -281,8 +285,13 @@ static int r82600_probe1(struct pci_dev *pdev, int dev_idx)
	debugf2("%s(): sdram refresh rate = %#0x\n", __func__,
		sdram_refresh_rate);
	debugf2("%s(): DRAMC register = %#0x\n", __func__, dramcr);
	mci = edac_mc_alloc(0, R82600_NR_CSROWS, R82600_NR_CHANS, 0);

	layers[0].type = EDAC_MC_LAYER_CHIP_SELECT;
	layers[0].size = R82600_NR_CSROWS;
	layers[0].is_virt_csrow = true;
	layers[1].type = EDAC_MC_LAYER_CHANNEL;
	layers[1].size = R82600_NR_CHANS;
	layers[1].is_virt_csrow = false;
	mci = new_edac_mc_alloc(0, ARRAY_SIZE(layers), layers, 0);
	if (mci == NULL)
		return -ENOMEM;