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

Commit 6b24d425 authored by Raghava Aditya Renukunta's avatar Raghava Aditya Renukunta Committed by Martin K. Petersen
Browse files

scsi: aacraid: Using single reset mask for IOP reset



The driver can now trigger IOP reset with a single reset mask. Removed
code that retrieves a reset_mask from the firmware.

Signed-off-by: default avatarRaghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
Reviewed-by: default avatarDavid Carroll <david.carroll@microsemi.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 144ecd41
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -2378,6 +2378,7 @@ struct revision
#define SOFT_RESET_TIME			60



struct aac_common
{
	/*
@@ -2490,6 +2491,8 @@ struct aac_hba_info {
#define IOP_RESET_ALWAYS		0x00001001
#define RE_INIT_ADAPTER		0x000000ee

#define IOP_SRC_RESET_MASK		0x00000100

/*
 *	Adapter Status Register
 *
+2 −14
Original line number Diff line number Diff line
@@ -704,22 +704,10 @@ static void aac_send_iop_reset(struct aac_dev *dev, int bled)
				    0, 0, 0, 0, 0, 0, &var,
				    &reset_mask, NULL, NULL, NULL);

	if ((bled || var != 0x00000001) && !dev->doorbell_mask)
		bled = -EINVAL;
	else if (dev->doorbell_mask) {
		reset_mask = dev->doorbell_mask;
		bled = 0;
		var = 0x00000001;
	}

	aac_set_intx_mode(dev);

	if (!bled && (dev->supplement_adapter_info.supported_options2 &
	    AAC_OPTION_DOORBELL_RESET)) {
		src_writel(dev, MUnit.IDR, reset_mask);
	} else {
		src_writel(dev, MUnit.IDR, 0x100);
	}
	src_writel(dev, MUnit.IDR, IOP_SRC_RESET_MASK);

	msleep(30000);
}