On 12/01/2015 10:03 PM, wenxi...@linux.vnet.ibm.com wrote: > From: Wen Xiong <wenxi...@linux.vnet.ibm.com> > > Add the appropriate definitions and table entries for new > adapters support. > > Signed-off-by: Wen Xiong <wenxi...@linux.vnet.ibm.com> > > --- > drivers/scsi/ipr.c | 34 ++++++++++++++++++++++++++++++++++ > drivers/scsi/ipr.h | 3 +++ > 2 files changed, 37 insertions(+), 0 deletions(-) > > diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c > index f2df57a..28c0aac 100644 > --- a/drivers/scsi/ipr.c > +++ b/drivers/scsi/ipr.c > @@ -189,6 +189,35 @@ static const struct ipr_chip_cfg_t ipr_chip_cfg[] = { > .endian_swap_reg = 0x00084 > } > }, > + { /* RattleSnake */ > + .mailbox = 0x00044, > + .max_cmds = 1000, > + .cache_line_size = 0x20, > + .clear_isr = 0, > + .iopoll_weight = 64, > + { > + .set_interrupt_mask_reg = 0x00010, > + .clr_interrupt_mask_reg = 0x00018, > + .clr_interrupt_mask_reg32 = 0x0001C, > + .sense_interrupt_mask_reg = 0x00010, > + .sense_interrupt_mask_reg32 = 0x00014, > + .clr_interrupt_reg = 0x00008, > + .clr_interrupt_reg32 = 0x0000C, > + .sense_interrupt_reg = 0x00000, > + .sense_interrupt_reg32 = 0x00004, > + .ioarrin_reg = 0x00070, > + .sense_uproc_interrupt_reg = 0x00020, > + .sense_uproc_interrupt_reg32 = 0x00024, > + .set_uproc_interrupt_reg = 0x00020, > + .set_uproc_interrupt_reg32 = 0x00024, > + .clr_uproc_interrupt_reg = 0x00028, > + .clr_uproc_interrupt_reg32 = 0x0002C, > + .init_feedback_reg = 0x0005C, > + .dump_addr_reg = 0x00064, > + .dump_data_reg = 0x00068, > + .endian_swap_reg = 0x00084 > + }
Since these settings are all identical to Croc and Crocodile, can we just re-use the CroC entry in this array rather than creating a new entry that has identical data? > + }, > }; > > static const struct ipr_chip_t ipr_chip[] = { > @@ -201,6 +230,7 @@ static const struct ipr_chip_t ipr_chip[] = { > { PCI_VENDOR_ID_ADAPTEC2, PCI_DEVICE_ID_ADAPTEC2_SCAMP, IPR_USE_LSI, > IPR_SIS32, IPR_PCI_CFG, &ipr_chip_cfg[1] }, > { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CROC_FPGA_E2, IPR_USE_MSI, > IPR_SIS64, IPR_MMIO, &ipr_chip_cfg[2] }, > { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CROCODILE, IPR_USE_MSI, > IPR_SIS64, IPR_MMIO, &ipr_chip_cfg[2] } > + { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_RATTLESNAME, IPR_USE_MSI, > IPR_SIS64, IPR_MMIO, &ipr_chip_cfg[3] } Then we'd just change this to point to &ipr_chip_cfg[2] > }; > > static int ipr_max_bus_speeds[] = { > @@ -10787,6 +10817,10 @@ static struct pci_device_id ipr_pci_table[] = { > PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_2CD2, 0, 0, 0 }, > { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CROCODILE, > PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_2CCD, 0, 0, 0 }, > + { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_RATTLESNAKE, > + PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_580A, 0, 0, 0 }, > + { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_RATTLESNAKE, > + PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_580B, 0, 0, 0 }, > { } > }; > MODULE_DEVICE_TABLE(pci, ipr_pci_table); > diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h > index a7ef83f..32c8b26 100644 > --- a/drivers/scsi/ipr.h > +++ b/drivers/scsi/ipr.h > @@ -60,6 +60,7 @@ > > #define PCI_DEVICE_ID_IBM_CROC_FPGA_E2 0x033D > #define PCI_DEVICE_ID_IBM_CROCODILE 0x034A > +#define PCI_DEVICE_ID_IBM_RATTLESNAKE 0x04DA > > #define IPR_SUBS_DEV_ID_2780 0x0264 > #define IPR_SUBS_DEV_ID_5702 0x0266 > @@ -111,6 +112,8 @@ > #define IPR_SUBS_DEV_ID_2CCA 0x04C7 > #define IPR_SUBS_DEV_ID_2CD2 0x04C8 > #define IPR_SUBS_DEV_ID_2CCD 0x04C9 > +#define IPR_SUBS_DEV_ID_580A 0x04FC > +#define IPR_SUBS_DEV_ID_580B 0x04FB > #define IPR_NAME "ipr" > > /* > -- Brian King Power Linux I/O IBM Linux Technology Center ------------------------------------------------------------------------------ _______________________________________________ Iprdd-devel mailing list Iprdd-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/iprdd-devel