mpt fusion: add sysfs attributes to display IOC parameters
Subsystems (2)
PATCH 1/1 mpt fusion: add sysfs attributes to display IOC parameters
Resubmitting with the changes suggested by Brian King :
New sysfs scsi_host attributes are added to provide information about Firmware version, BIOS version, Driver version, MPI version and other product related information
---
drivers/message/fusion/mptbase.c +45 -0
@@ -161,6 +161,7 @@ static int mpt_readScsiDevicePageHeadersstatic void mpt_read_ioc_pg_1 (MPT_ADAPTER *ioc);static void mpt_read_ioc_pg_4 (MPT_ADAPTER *ioc);static void mpt_timer_expired (unsigned long data); +static void mpt_get_manufacturing_pg_0 (MPT_ADAPTER *ioc);static int SendEventNotification (MPT_ADAPTER *ioc,u8 EvSwitch);static int SendEventAck (MPT_ADAPTER *ioc,EventNotificationReply_t *evnp);static int mpt_host_page_access_control (MPT_ADAPTER *ioc,u8 access_control_value,int sleepFlag);
@@ -1880,6 +1881,7 @@ mpt_do_ioc_recovery(MPT_ADAPTER *ioc, u3 }GetIoUnitPage2 (ioc); +mpt_get_manufacturing_pg_0 (ioc); }/*
@@ -5190,6 +5192,49 @@ mpt_read_ioc_pg_1(MPT_ADAPTER *ioc)return ; } +static void +mpt_get_manufacturing_pg_0 (MPT_ADAPTER *ioc) +{ +CONFIGPARMS cfg; +ConfigPageHeader_t hdr; +dma_addr_t buf_dma; +ManufacturingPage0_t *pbuf =NULL ; + +memset (&cfg,0 ,sizeof (CONFIGPARMS )); +memset (&hdr,0 ,sizeof (ConfigPageHeader_t)); + + hdr.PageType =MPI_CONFIG_PAGETYPE_MANUFACTURING ; + cfg.cfghdr.hdr = &hdr; + cfg.physAddr =-1 ; + cfg.action =MPI_CONFIG_ACTION_PAGE_HEADER ; + cfg.timeout =10 ; + +if (mpt_config (ioc, &cfg) !=0 ) + goto out; + +if (!cfg.cfghdr.hdr->PageLength) + goto out; + + cfg.action =MPI_CONFIG_ACTION_PAGE_READ_CURRENT ; + pbuf =pci_alloc_consistent (ioc->pcidev, hdr.PageLength *4 , &buf_dma); +if (!pbuf) + goto out; + + cfg.physAddr = buf_dma; + +if (mpt_config (ioc, &cfg) !=0 ) + goto out; + +memcpy (ioc->board_name, pbuf->BoardName,sizeof (ioc->board_name)); +memcpy (ioc->board_assembly, pbuf->BoardAssembly,sizeof (ioc->board_assembly)); +memcpy (ioc->board_tracer, pbuf->BoardTracerNumber,sizeof (ioc->board_tracer)); + + out: + +if (pbuf) +pci_free_consistent (ioc->pcidev, hdr.PageLength *4 , pbuf, buf_dma); +} +/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ /** * SendEventNotification - Send EventNotification (on or off) request to adapter
drivers/message/fusion/mptbase.h +7 -0
@@ -538,6 +538,13 @@ typedef struct _MPT_ADAPTERint pci_irq;/* This irq */ char name[MPT_NAME_LENGTH ];/* "iocN" */ char *prod_name;/* "LSIFC9x9" */ +char board_name[16 ]; +char board_assembly[16 ]; +char board_tracer[16 ]; +u16 nvdata_version_persistent; +u16 nvdata_version_default; +u8 io_missing_delay; +u8 device_missing_delay;SYSIF_REGS __iomem *chip;/* == c8817000 (mmap) */ SYSIF_REGS __iomem *pio_chip;/* Programmed IO (downloadboot) */ u8 bus_type;
drivers/message/fusion/mptfc.c +1 -0
@@ -130,6 +130,7 @@ static struct scsi_host_template mptfc_d .max_sectors = 8192, .cmd_per_lun = 7, .use_clustering = ENABLE_CLUSTERING, + .shost_attrs = mptscsih_host_attrs, };/****************************************************************************
drivers/message/fusion/mptsas.c +64 -0
88 lines not on this page · raw message
drivers/message/fusion/mptscsih.c +161 -0
167 lines not on this page · raw message
drivers/message/fusion/mptscsih.h +1 -0
@@ -129,3 +129,4 @@ extern void mptscsih_timer_expired(unsigextern int mptscsih_TMHandler (MPT_SCSI_HOST *hd,u8 type,u8 channel,u8 id,int lun,int ctx2abort,ulong timeout);extern u8 mptscsih_raid_id_to_num (MPT_ADAPTER *ioc,u8 channel,u8 id);extern int mptscsih_is_phys_disk (MPT_ADAPTER *ioc,u8 channel,u8 id); +extern struct class_device_attribute *mptscsih_host_attrs[];
drivers/message/fusion/mptspi.c +1 -0
@@ -819,6 +819,7 @@ static struct scsi_host_template mptspi_ .max_sectors = 8192, .cmd_per_lun = 7, .use_clustering = ENABLE_CLUSTERING, + .shost_attrs = mptscsih_host_attrs, }; static int mptspi_write_spi_device_pg1(struct scsi_target *starget,
drivers/message/fusion/mptscsih.c mptscsih_synchronize_cache(MPT_SCSI_HOST · line 3225
Quoted 6 lines · Sathya
drivers/message/fusion/mptscsih.c +6
-0+static ssize_t +mptscsih_version_driver_show (struct class_device *cdev,char *buf) +{ +return snprintf (buf,PAGE_SIZE ,"%s\n" ,MPT_LINUX_VERSION_COMMON ); +} +static CLASS_DEVICE_ATTR(version_driver, S_IRUGO, mptscsih_version_driver_show, NULL);
This should be removed from the patch. This information is already available in sysfs: /sys/module/mptscsih/version
-Brian
Signature · 3 lines
Brian King Linux on Power Virtualization IBM Linux Technology Center
Quoted 3 lines · Brian King
This should be removed from the patch. This information is already available in sysfs:
/sys/module/mptscsih/version
He is correct, the version is there in /sys/module/mptsas/version as
well. Please repost the patch with this removed.
Thanks,
Eric