Blob Blame History Raw
From: Hannes Reinecke <hare@suse.de>
Date: Thu, 21 May 2015 09:12:56 +0200
Subject: [PATCH] edd: support original Phoenix EDD 3.0 information
References: bnc#762285,bsc#929974
Patch-Mainline: submitted to lkml 2015/05/21

The original Phoenix EDD 3.0 specification (as found in
eg http://mbldr.sourceforge.net/specsedd30.pdf) has a
device path length of 36, not 44.
All the other fields are identical, so we can trivially
support both.

Signed-off-by: Hannes Reinecke <hare@suse.de>
---
 drivers/firmware/edd.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/firmware/edd.c b/drivers/firmware/edd.c
index e229576..92bc0e8 100644
--- a/drivers/firmware/edd.c
+++ b/drivers/firmware/edd.c
@@ -8,6 +8,8 @@
  * BIOS Enhanced Disk Drive Services (EDD)
  * conformant to T13 Committee www.t13.org
  *   projects 1572D, 1484D, 1386D, 1226DT
+ * and the original Phoenix BIOS EDD 3.0 spec from
+ * <http://mbldr.sourceforge.net/specsedd30.pdf>
  *
  * This code takes information provided by BIOS EDD calls
  * fn41 - Check Extensions Present and
@@ -545,8 +547,9 @@ edd_has_edd30(struct edd_device *edev)
 	}
 
 
-	/* We support only T13 spec */
-	if (info->params.device_path_info_length != 44)
+	/* We support T13 d1572 and the original Phoenix spec */
+	if (info->params.device_path_info_length != 44 &&
+	    info->params.device_path_info_length != 36)
 		return 0;
 
 	for (i = 30; i < info->params.device_path_info_length + 30; i++)
-- 
1.8.5.2