On 12/01/2015 10:03 PM, [email protected] wrote:
> From: Wen Xiong <[email protected]>
>
> Add the appropriate definitions and table entries for new
> adapters support.
>
> Signed-off-by: Wen Xiong <[email protected]>
>
> ---
> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/iprdd-devel