aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/ide/pmac.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/ide/pmac.c b/drivers/ide/pmac.c
index 24ce1f805cd7..052b9bf1f8fb 100644
--- a/drivers/ide/pmac.c
+++ b/drivers/ide/pmac.c
@@ -919,10 +919,18 @@ static u8 pmac_ide_cable_detect(ide_hwif_t *hwif)
919 (pmac_ide_hwif_t *)dev_get_drvdata(hwif->gendev.parent); 919 (pmac_ide_hwif_t *)dev_get_drvdata(hwif->gendev.parent);
920 struct device_node *np = pmif->node; 920 struct device_node *np = pmif->node;
921 const char *cable = of_get_property(np, "cable-type", NULL); 921 const char *cable = of_get_property(np, "cable-type", NULL);
922 struct device_node *root = of_find_node_by_path("/");
923 const char *model = of_get_property(root, "model", NULL);
922 924
923 /* Get cable type from device-tree. */ 925 /* Get cable type from device-tree. */
924 if (cable && !strncmp(cable, "80-", 3)) 926 if (cable && !strncmp(cable, "80-", 3)) {
925 return ATA_CBL_PATA80; 927 /* Some drives fail to detect 80c cable in PowerBook */
928 /* These machine use proprietary short IDE cable anyway */
929 if (!strncmp(model, "PowerBook", 9))
930 return ATA_CBL_PATA40_SHORT;
931 else
932 return ATA_CBL_PATA80;
933 }
926 934
927 /* 935 /*
928 * G5's seem to have incorrect cable type in device-tree. 936 * G5's seem to have incorrect cable type in device-tree.