From 29a882863e648cb828a7571e02603478260f54e8 Mon Sep 17 00:00:00 2001 From: fjin Date: Wed, 19 Oct 2011 10:13:49 +0800 Subject: [PATCH] Use cciss for some Smart Array controller when build for OL5 In OL6 kernel, Smart Array may used cciss or hpsa, but OL5 only supported cciss, this made UEK kernel failed during booting. This patch move below devices from hpsa to cciss if build for OL5: Device Name pci id ---------------------+-------------- "Smart Array P212" 103C:3241 "Smart Array P410" 103C:3243 "Smart Array P410i" 103C:3245 "Smart Array P411" 103C:3247 "Smart Array P812" 103C:3249 "Smart Array P712m" 103C:324A "Smart Array P711m" 103C:324B "Smart Array" 103C:3250 "Smart Array" 103C:3251 "Smart Array" 103C:3252 "Smart Array" 103C:3253 "Smart Array" 103C:3254 Signed-off-by: guru.anbalagane Signed-off-by: Joe Jin --- drivers/block/cciss.c | 28 ++++++++++++++++++++++++++++ drivers/scsi/hpsa.c | 4 ++++ 2 files changed, 32 insertions(+) diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index 8f4ef656a1af..2b94c92873f6 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c @@ -98,6 +98,20 @@ static const struct pci_device_id cciss_pci_device_id[] = { {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSD, 0x103C, 0x3215}, {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSC, 0x103C, 0x3237}, {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSC, 0x103C, 0x323D}, +#if defined(CONFIG_UEK5) + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3241}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3243}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3245}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3247}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3249}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x324A}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x324B}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3250}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3251}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3252}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3253}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3254}, +#endif {0,} }; @@ -130,6 +144,20 @@ static struct board_type products[] = { {0x3223103C, "Smart Array P800", &SA5_access}, {0x3234103C, "Smart Array P400", &SA5_access}, {0x323D103C, "Smart Array P700m", &SA5_access}, +#if defined(CONFIG_UEK5) + {0x3241103C, "Smart Array P212", &SA5_access}, + {0x3243103C, "Smart Array P410", &SA5_access}, + {0x3245103C, "Smart Array P410i", &SA5_access}, + {0x3247103C, "Smart Array P411", &SA5_access}, + {0x3249103C, "Smart Array P812", &SA5_access}, + {0x324A103C, "Smart Array P712m", &SA5_access}, + {0x324B103C, "Smart Array P711m", &SA5_access}, + {0x3250103C, "Smart Array", &SA5_access}, + {0x3251103C, "Smart Array", &SA5_access}, + {0x3252103C, "Smart Array", &SA5_access}, + {0x3253103C, "Smart Array", &SA5_access}, + {0x3254103C, "Smart Array", &SA5_access}, +#endif }; /* How long to wait (in milliseconds) for board to go into simple mode */ diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c index 78c2e20b2025..62a1ebfae486 100644 --- a/drivers/scsi/hpsa.c +++ b/drivers/scsi/hpsa.c @@ -81,6 +81,7 @@ MODULE_PARM_DESC(hpsa_simple_mode, /* define the PCI info for the cards we can control */ static const struct pci_device_id hpsa_pci_device_id[] = { +#ifndef CONFIG_UEK5 {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3241}, {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3243}, {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3245}, @@ -88,6 +89,7 @@ static const struct pci_device_id hpsa_pci_device_id[] = { {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3249}, {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x324a}, {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x324b}, +#endif {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3233}, {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSF, 0x103C, 0x3350}, {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSF, 0x103C, 0x3351}, @@ -108,6 +110,7 @@ MODULE_DEVICE_TABLE(pci, hpsa_pci_device_id); * access = Address of the struct of function pointers */ static struct board_type products[] = { +#ifndef CONFIG_UEK5 {0x3241103C, "Smart Array P212", &SA5_access}, {0x3243103C, "Smart Array P410", &SA5_access}, {0x3245103C, "Smart Array P410i", &SA5_access}, @@ -115,6 +118,7 @@ static struct board_type products[] = { {0x3249103C, "Smart Array P812", &SA5_access}, {0x324a103C, "Smart Array P712m", &SA5_access}, {0x324b103C, "Smart Array P711m", &SA5_access}, +#endif {0x3350103C, "Smart Array", &SA5_access}, {0x3351103C, "Smart Array", &SA5_access}, {0x3352103C, "Smart Array", &SA5_access}, -- 2.50.1