* [PATCH 01/06] mptfusion: (New Feature)Added new sysfs parameters for handle and firmware id
@ 2011-02-10 6:19 Kashyap, Desai
2011-02-12 19:55 ` James Bottomley
0 siblings, 1 reply; 3+ messages in thread
From: Kashyap, Desai @ 2011-02-10 6:19 UTC (permalink / raw)
To: linux-scsi; +Cc: James.Bottomley, Eric.Moore, Sathya.Prakash
New feature is added. sas_device_hanlde and firmware id will be visible from
sysfs parameters. handle and firmware id is internal to LSI firmware.
It is merely debugging purpose.
Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
---
diff --git a/drivers/message/fusion/mptbase.h b/drivers/message/fusion/mptbase.h
index f71f229..0f3e8fd 100644
--- a/drivers/message/fusion/mptbase.h
+++ b/drivers/message/fusion/mptbase.h
@@ -399,6 +399,7 @@ typedef struct _VirtTarget {
u8 inDMD; /* currently in the device
removal delay timer */
u32 num_luns;
+ u16 handle;
} VirtTarget;
typedef struct _VirtDevice {
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index d48c2c6..482e97f 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -1758,6 +1758,7 @@ mptsas_target_alloc(struct scsi_target *starget)
id = p->phy_info[i].attached.id;
channel = p->phy_info[i].attached.channel;
mptsas_set_starget(&p->phy_info[i], starget);
+ vtarget->handle = p->phy_info[i].attached.handle;
/*
* Exposing hidden raid components
@@ -1983,6 +1984,7 @@ static struct scsi_host_template mptsas_driver_template = {
.cmd_per_lun = 7,
.use_clustering = ENABLE_CLUSTERING,
.shost_attrs = mptscsih_host_attrs,
+ .sdev_attrs = mptscsih_dev_attrs,
};
static int mptsas_get_linkerrors(struct sas_phy *phy)
diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c
index 59b8f53..07946aa 100644
--- a/drivers/message/fusion/mptscsih.c
+++ b/drivers/message/fusion/mptscsih.c
@@ -3333,7 +3333,66 @@ struct device_attribute *mptscsih_host_attrs[] = {
NULL,
};
+/* device attributes */
+
+
+/**
+ * mptscsih_device_handle_show - device handle
+ * @cdev - pointer to embedded class device
+ * @buf - the buffer returned
+ *
+ * This is the firmware assigned device handle
+ *
+ * A sysfs 'read-only' shost attribute.
+ */
+static ssize_t
+mptscsih_device_handle_show(struct device *dev, struct device_attribute *attr,
+ char *buf)
+{
+ struct scsi_device *sdev = to_scsi_device(dev);
+ VirtDevice *vdevice = sdev->hostdata;
+
+ if (vdevice && vdevice->vtarget)
+ return snprintf(buf, PAGE_SIZE, "0x%04x\n",
+ vdevice->vtarget->handle);
+ else
+ return snprintf(buf, PAGE_SIZE, "0x0\n");
+}
+static DEVICE_ATTR(sas_device_handle, S_IRUGO, mptscsih_device_handle_show,
+ NULL);
+/**
+ * mptscsih_fw_id_show - device handle
+ * @cdev - pointer to embedded class device
+ * @buf - the buffer returned
+ *
+ * This is the firmware assigned id.
+ *
+ * A sysfs 'read-only' shost attribute.
+ */
+static ssize_t
+mptscsih_device_fw_id_show(struct device *dev, struct device_attribute *attr,
+ char *buf)
+{
+ struct scsi_device *sdev = to_scsi_device(dev);
+ VirtDevice *vdevice = sdev->hostdata;
+
+ if (vdevice && vdevice->vtarget)
+ return snprintf(buf, PAGE_SIZE, "0x%04x\n",
+ vdevice->vtarget->id);
+ else
+ return snprintf(buf, PAGE_SIZE, "0x0\n");
+}
+static DEVICE_ATTR(fw_id, S_IRUGO, mptscsih_device_fw_id_show,
+ NULL);
+
+struct device_attribute *mptscsih_dev_attrs[] = {
+ &dev_attr_sas_device_handle,
+ &dev_attr_fw_id,
+ NULL,
+};
+
EXPORT_SYMBOL(mptscsih_host_attrs);
+EXPORT_SYMBOL(mptscsih_dev_attrs);
EXPORT_SYMBOL(mptscsih_remove);
EXPORT_SYMBOL(mptscsih_shutdown);
diff --git a/drivers/message/fusion/mptscsih.h b/drivers/message/fusion/mptscsih.h
index 45a5ff3..d9839ca 100644
--- a/drivers/message/fusion/mptscsih.h
+++ b/drivers/message/fusion/mptscsih.h
@@ -133,5 +133,6 @@ extern int mptscsih_change_queue_depth(struct scsi_device *sdev, int qdepth,
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 device_attribute *mptscsih_host_attrs[];
+extern struct device_attribute *mptscsih_dev_attrs[];
extern struct scsi_cmnd *mptscsih_get_scsi_lookup(MPT_ADAPTER *ioc, int i);
extern void mptscsih_taskmgmt_response_code(MPT_ADAPTER *ioc, u8 response_code);
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 01/06] mptfusion: (New Feature)Added new sysfs parameters for handle and firmware id
2011-02-10 6:19 [PATCH 01/06] mptfusion: (New Feature)Added new sysfs parameters for handle and firmware id Kashyap, Desai
@ 2011-02-12 19:55 ` James Bottomley
2011-02-16 11:48 ` Desai, Kashyap
0 siblings, 1 reply; 3+ messages in thread
From: James Bottomley @ 2011-02-12 19:55 UTC (permalink / raw)
To: Kashyap, Desai; +Cc: linux-scsi, Eric.Moore, Sathya.Prakash
On Thu, 2011-02-10 at 11:49 +0530, Kashyap, Desai wrote:
> New feature is added. sas_device_hanlde and firmware id will be visible from
> sysfs parameters. handle and firmware id is internal to LSI firmware.
> It is merely debugging purpose.
Broken record time: checkpatch.pl:
WARNING: please, no space before tabs
#21: FILE: drivers/message/fusion/mptbase.h:402:
+^Iu16 ^I^I handle;$
WARNING: please, no spaces at the start of a line
#67: FILE: drivers/message/fusion/mptscsih.c:3350:
+ char *buf)$
ERROR: code indent should use tabs where possible
#79: FILE: drivers/message/fusion/mptscsih.c:3362:
+ ^I^INULL);$
WARNING: please, no space before tabs
#79: FILE: drivers/message/fusion/mptscsih.c:3362:
+ ^I^INULL);$
WARNING: please, no spaces at the start of a line
#79: FILE: drivers/message/fusion/mptscsih.c:3362:
+ ^I^INULL);$
WARNING: please, no spaces at the start of a line
#91: FILE: drivers/message/fusion/mptscsih.c:3374:
+ char *buf)$
ERROR: code indent should use tabs where possible
#103: FILE: drivers/message/fusion/mptscsih.c:3386:
+ ^I^INULL);$
WARNING: please, no space before tabs
#103: FILE: drivers/message/fusion/mptscsih.c:3386:
+ ^I^INULL);$
WARNING: please, no spaces at the start of a line
#103: FILE: drivers/message/fusion/mptscsih.c:3386:
+ ^I^INULL);$
total: 2 errors, 7 warnings, 93 lines checked
Also, as I read through this patch, doesn't it add these two parameters
for every fusion device type (SPI, SAS and FC) but only set them for
SAS? If you want SAS only parameters, they should probably be visible
only for SAS cards.
James
^ permalink raw reply [flat|nested] 3+ messages in thread
* RE: [PATCH 01/06] mptfusion: (New Feature)Added new sysfs parameters for handle and firmware id
2011-02-12 19:55 ` James Bottomley
@ 2011-02-16 11:48 ` Desai, Kashyap
0 siblings, 0 replies; 3+ messages in thread
From: Desai, Kashyap @ 2011-02-16 11:48 UTC (permalink / raw)
To: James Bottomley; +Cc: linux-scsi@vger.kernel.org, Moore, Eric, Prakash, Sathya
> -----Original Message-----
> From: James Bottomley [mailto:James.Bottomley@HansenPartnership.com]
> Sent: Sunday, February 13, 2011 1:25 AM
> To: Desai, Kashyap
> Cc: linux-scsi@vger.kernel.org; Moore, Eric; Prakash, Sathya
> Subject: Re: [PATCH 01/06] mptfusion: (New Feature)Added new sysfs
> parameters for handle and firmware id
>
> On Thu, 2011-02-10 at 11:49 +0530, Kashyap, Desai wrote:
> > New feature is added. sas_device_hanlde and firmware id will be
> visible from
> > sysfs parameters. handle and firmware id is internal to LSI firmware.
> > It is merely debugging purpose.
>
> Broken record time: checkpatch.pl:
>
> WARNING: please, no space before tabs
> #21: FILE: drivers/message/fusion/mptbase.h:402:
> +^Iu16 ^I^I handle;$
>
> WARNING: please, no spaces at the start of a line
> #67: FILE: drivers/message/fusion/mptscsih.c:3350:
> + char *buf)$
>
> ERROR: code indent should use tabs where possible
> #79: FILE: drivers/message/fusion/mptscsih.c:3362:
> + ^I^INULL);$
>
> WARNING: please, no space before tabs
> #79: FILE: drivers/message/fusion/mptscsih.c:3362:
> + ^I^INULL);$
>
> WARNING: please, no spaces at the start of a line
> #79: FILE: drivers/message/fusion/mptscsih.c:3362:
> + ^I^INULL);$
>
> WARNING: please, no spaces at the start of a line
> #91: FILE: drivers/message/fusion/mptscsih.c:3374:
> + char *buf)$
>
> ERROR: code indent should use tabs where possible
> #103: FILE: drivers/message/fusion/mptscsih.c:3386:
> + ^I^INULL);$
>
> WARNING: please, no space before tabs
> #103: FILE: drivers/message/fusion/mptscsih.c:3386:
> + ^I^INULL);$
>
> WARNING: please, no spaces at the start of a line
> #103: FILE: drivers/message/fusion/mptscsih.c:3386:
> + ^I^INULL);$
>
> total: 2 errors, 7 warnings, 93 lines checked
James, my script missed this when I resend the patch. I missed to run "cleanpatch" from scripts directory.
I will redo this.
>
> Also, as I read through this patch, doesn't it add these two parameters
> for every fusion device type (SPI, SAS and FC) but only set them for
> SAS? If you want SAS only parameters, they should probably be visible
> only for SAS cards.
I have only used sdev_attrs for mptsas.c as below
.sdev_attrs = mptscsih_dev_attrs
It means all parameters are visible to only MPTSAS modules. Not for mptfc and mptspi.
Do you want some changes in this area ?
~ Kashyap
>
> James
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-02-16 11:48 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-02-10 6:19 [PATCH 01/06] mptfusion: (New Feature)Added new sysfs parameters for handle and firmware id Kashyap, Desai
2011-02-12 19:55 ` James Bottomley
2011-02-16 11:48 ` Desai, Kashyap
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox