So, adding adding hpsa_allow_any=1 did not work... When you added the 0x40800e11, did you add it to both tables? /* define the PCI info for the cards we can control */ static const struct pci_device_id hpsa_pci_device_id[] = { {PCI_VENDOR_ID_COMPAQ, PCI_DEVICE_ID_COMPAQ_CISSB, 0x0E11, 0x4080}, ... {0,} }; /* board_id = Subsystem Device ID & Vendor ID * product = Marketing Name for the board * access = Address of the struct of function pointers */ static struct board_type products[] = { {0x40800E11, "Smart Array 5i", &SA5B_access}, ... }; I added it at the very first entry to make it easier. --- However, there is not a SA5B_access table in hpsa.h. /* * This card is the opposite of the other cards. * 0 turns interrupts on... * 0x04 turns them off... */ static void SA5B_intr_mask(ctlr_info_t *h, unsigned long val) { if (val) { /* Turn interrupts on */ h->interrupts_enabled = 1; writel(0, h->vaddr + SA5_REPLY_INTR_MASK_OFFSET); (void) readl(h->vaddr + SA5_REPLY_INTR_MASK_OFFSET); } else /* Turn them off */ { h->interrupts_enabled = 0; writel( SA5B_INTR_OFF, h->vaddr + SA5_REPLY_INTR_MASK_OFFSET); (void) readl(h->vaddr + SA5_REPLY_INTR_MASK_OFFSET); } } /* * Returns true if an interrupt is pending.. */ static bool SA5B_intr_pending(ctlr_info_t *h) { unsigned long register_value = readl(h->vaddr + SA5_INTR_STATUS); #ifdef CCISS_DEBUG printk("cciss: intr_pending %lx\n", register_value); #endif /* CCISS_DEBUG */ if( register_value & SA5B_INTR_PENDING) return 1; return 0 ; } static struct access_method SA5B_access = { .submit_command = SA5_submit_command, .set_intr_mask = SA5B_intr_mask, .fifo_full = SA5_fifo_full, .intr_pending = SA5B_intr_pending, .command_completed = SA5_completed, }; Can you try adding the two table entries and the SA5B definitions in hpsa.h? > -----Original Message----- > From: mroos@xxxxxxxxxx [mailto:mroos@xxxxxxxxxx] On Behalf Of Meelis > Roos > Sent: Monday, July 10, 2017 9:08 AM > To: Christoph Hellwig <hch@xxxxxxxxxxxxx> > Cc: Laurence Oberman <loberman@xxxxxxxxxx>; Jens Axboe > <axboe@xxxxxxxxx>; Linux Kernel list <linux-kernel@xxxxxxxxxxxxxxx>; linux- > block@xxxxxxxxxxxxxxx; Don Brace <don.brace@xxxxxxxxxxxxx>; Scott > Benesh <scott.benesh@xxxxxxxxxxxxx>; Scott Teel > <scott.teel@xxxxxxxxxxxxx>; Kevin Barnett > <kevin.barnett@xxxxxxxxxxxxx>; linux-scsi@xxxxxxxxxxxxxxx; Hannes > Reinecke <hare@xxxxxxx> > Subject: Re: device support in hpsa, was: Re: OOPS from cciss_ioctl in 4.12+git > > EXTERNAL EMAIL > > > > On Fri, Jul 07, 2017 at 11:42:38AM -0400, Laurence Oberman wrote: > > > What happens when hpsa_allow_any=1 with the Smart Array 64xx > > > It should probe. > > > > But only if it has a HP vendor ID as far as I can tell. We'd > > still need to add the compaq ids so that these controllers get > > probed. But maybe it's time to add them and flip the hpsa_allow_any > > default (maybe conditionally on a config option?) and mark cciss > > deprecated. > > I added hpsa_allow_any=1, did not help. > > Added a wildcard Compaq entry with RAID class, like the one for HP, > still no go: > > [ 5.199125] hpsa 0000:00:04.0: unrecognized board ID: 0x40800e11, ignoring. > [ 5.282517] hpsa 0000:00:04.0: Board ID not found > > Added specific PCI ID and subdevice ID quad and I still get the same > messages and the adapter is ignored. > > What am I doing wrong? > > -- > Meelis Roos (mroos@xxxxxxxx)