aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXin LI <delphij@FreeBSD.org>2021-03-03 06:57:20 +0000
committerXin LI <delphij@FreeBSD.org>2021-03-06 01:43:42 +0000
commit0bdc21952ae606b9f33fc455986f5a8cc61ab189 (patch)
tree0a1dfb4a06cfb4254d1bd51f915b0c84d46ce15d
parent952ad28223596ef4e323a9a7da81ef3faf1c919a (diff)
downloadsrc-0bdc21952ae606b9f33fc455986f5a8cc61ab189.tar.gz
src-0bdc21952ae606b9f33fc455986f5a8cc61ab189.zip
arcmsr(4): Fixed no action of hot plugging device on type_F adapter.
Many thanks to Areca for continuing to support FreeBSD. Submitted by: 黃清隆 <ching2048 areca com tw> MFC after: 3 days (cherry picked from commit 5842073a9b7471831e0da48d29dd984d575f4e9e)
-rw-r--r--sys/dev/arcmsr/arcmsr.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/dev/arcmsr/arcmsr.c b/sys/dev/arcmsr/arcmsr.c
index e228f358f480..c2027eb8e987 100644
--- a/sys/dev/arcmsr/arcmsr.c
+++ b/sys/dev/arcmsr/arcmsr.c
@@ -80,6 +80,7 @@
** 1.40.00.00 07/11/2017 Ching Huang Added support ARC1884
** 1.40.00.01 10/30/2017 Ching Huang Fixed release memory resource
** 1.50.00.00 09/30/2020 Ching Huang Added support ARC-1886, NVMe/SAS/SATA controller
+** 1.50.00.01 02/26/2021 Ching Huang Fixed no action of hot plugging device on type_F adapter
******************************************************************************************
*/
@@ -137,7 +138,7 @@ __FBSDID("$FreeBSD$");
#define arcmsr_callout_init(a) callout_init(a, /*mpsafe*/1);
-#define ARCMSR_DRIVER_VERSION "arcmsr version 1.50.00.00 2020-09-30"
+#define ARCMSR_DRIVER_VERSION "arcmsr version 1.50.00.01 2021-02-26"
#include <dev/arcmsr/arcmsr.h>
/*
**************************************************************************
@@ -1901,7 +1902,10 @@ static void arcmsr_hbe_message_isr(struct AdapterControlBlock *acb) {
u_int32_t outbound_message;
CHIP_REG_WRITE32(HBE_MessageUnit, 0, host_int_status, 0);
- outbound_message = CHIP_REG_READ32(HBE_MessageUnit, 0, msgcode_rwbuffer[0]);
+ if (acb->adapter_type == ACB_ADAPTER_TYPE_E)
+ outbound_message = CHIP_REG_READ32(HBE_MessageUnit, 0, msgcode_rwbuffer[0]);
+ else
+ outbound_message = acb->msgcode_rwbuffer[0];
if (outbound_message == ARCMSR_SIGNATURE_GET_CONFIG)
arcmsr_dr_handle( acb );
}