All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
To: linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org,
	lenb@kernel.org
Cc: toshi.kani@hp.com, liuj97@gmail.com
Subject: Re: [PATCH v5] create sun sysfs file
Date: Wed, 10 Oct 2012 17:31:28 +0900	[thread overview]
Message-ID: <50753260.7030607@jp.fujitsu.com> (raw)
In-Reply-To: <5073C906.1070400@jp.fujitsu.com>

Hi Len,

How about v5 patch? 

Thanks,
Yasuaki Ishimatsu

2012/10/09 15:49, Yasuaki Ishimatsu wrote:
> _SUN method provides the slot unique-ID in the ACPI namespace. And The value
> is written in Advanced Configuration and Power Interface Specification as
> follows:
> 
> "The _SUN value is required to be unique among the slots ofthe same type.
> It is also recommended that this number match the slot number printed on
> the physical slot whenever possible."
> 
> So if we can know the value, we can identify the physical position of the
> slot in the system.
> 
> The patch creates "sun" file in sysfs for identifying physical position
> of the slot.
> 
> Reviewed-by: Toshi Kani <toshi.kani@hp.com>
> Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
> 
> ---
>   Documentation/ABI/testing/sysfs-devices-sun |   14 ++++++++++++++
>   drivers/acpi/scan.c                         |   24 ++++++++++++++++++++++++
>   include/acpi/acpi_bus.h                     |    1 +
>   3 files changed, 39 insertions(+)
> 
> Index: linux-3.6/include/acpi/acpi_bus.h
> ===================================================================
> --- linux-3.6.orig/include/acpi/acpi_bus.h	2012-10-09 11:54:17.690072343 +0900
> +++ linux-3.6/include/acpi/acpi_bus.h	2012-10-09 14:15:49.207794671 +0900
> @@ -208,6 +208,7 @@ struct acpi_device_pnp {
>   	struct list_head ids;		/* _HID and _CIDs */
>   	acpi_device_name device_name;	/* Driver-determined */
>   	acpi_device_class device_class;	/*        "          */
> +	unsigned long sun;		/* _SUN */
>   };
>   
>   #define acpi_device_bid(d)	((d)->pnp.bus_id)
> Index: linux-3.6/drivers/acpi/scan.c
> ===================================================================
> --- linux-3.6.orig/drivers/acpi/scan.c	2012-10-09 11:54:17.688072343 +0900
> +++ linux-3.6/drivers/acpi/scan.c	2012-10-09 14:15:49.211794675 +0900
> @@ -232,10 +232,20 @@ end:
>   }
>   static DEVICE_ATTR(path, 0444, acpi_device_path_show, NULL);
>   
> +static ssize_t
> +acpi_device_sun_show(struct device *dev, struct device_attribute *attr,
> +		     char *buf) {
> +	struct acpi_device *acpi_dev = to_acpi_device(dev);
> +
> +	return sprintf(buf, "%lu\n", acpi_dev->pnp.sun);
> +}
> +static DEVICE_ATTR(sun, 0444, acpi_device_sun_show, NULL);
> +
>   static int acpi_device_setup_files(struct acpi_device *dev)
>   {
>   	acpi_status status;
>   	acpi_handle temp;
> +	unsigned long long sun;
>   	int result = 0;
>   
>   	/*
> @@ -257,6 +267,16 @@ static int acpi_device_setup_files(struc
>   			goto end;
>   	}
>   
> +	status = acpi_evaluate_integer(dev->handle, "_SUN", NULL, &sun);
> +	if (ACPI_SUCCESS(status)) {
> +		dev->pnp.sun = (unsigned long)sun;
> +		result = device_create_file(&dev->dev, &dev_attr_sun);
> +		if (result)
> +			goto end;
> +	} else {
> +		dev->pnp.sun = (unsigned long)-1;
> +	}
> +
>           /*
>            * If device has _EJ0, 'eject' file is created that is used to trigger
>            * hot-removal function from userland.
> @@ -281,6 +301,10 @@ static void acpi_device_remove_files(str
>   	if (ACPI_SUCCESS(status))
>   		device_remove_file(&dev->dev, &dev_attr_eject);
>   
> +	status = acpi_get_handle(dev->handle, "_SUN", &temp);
> +	if (ACPI_SUCCESS(status))
> +		device_remove_file(&dev->dev, &dev_attr_sun);
> +
>   	device_remove_file(&dev->dev, &dev_attr_modalias);
>   	device_remove_file(&dev->dev, &dev_attr_hid);
>   	if (dev->handle)
> Index: linux-3.6/Documentation/ABI/testing/sysfs-devices-sun
> ===================================================================
> --- /dev/null	1970-01-01 00:00:00.000000000 +0000
> +++ linux-3.6/Documentation/ABI/testing/sysfs-devices-sun	2012-10-09 15:47:02.333245246 +0900
> @@ -0,0 +1,14 @@
> +Whatt:		/sys/devices/.../sun
> +Date:		October 2012
> +Contact:	Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
> +Description:
> +		The file contains a Slot-unique ID which provided by the _SUN
> +		method in the ACPI namespace. The value is written in Advanced
> +		Configuration and Power Interface Specification as follows:
> +
> +		"The _SUN value is required to be unique among the slots of
> +		the same type. It is also recommended that this number match
> +		the slot number printed on the physical slot whenever possible."
> +
> +		So reading the sysfs file, we can identify a physical position
> +		of the slot in the system.
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 



WARNING: multiple messages have this Message-ID (diff)
From: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
To: <linux-acpi@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<lenb@kernel.org>
Cc: <toshi.kani@hp.com>, <liuj97@gmail.com>
Subject: Re: [PATCH v5] create sun sysfs file
Date: Wed, 10 Oct 2012 17:31:28 +0900	[thread overview]
Message-ID: <50753260.7030607@jp.fujitsu.com> (raw)
In-Reply-To: <5073C906.1070400@jp.fujitsu.com>

Hi Len,

How about v5 patch? 

Thanks,
Yasuaki Ishimatsu

2012/10/09 15:49, Yasuaki Ishimatsu wrote:
> _SUN method provides the slot unique-ID in the ACPI namespace. And The value
> is written in Advanced Configuration and Power Interface Specification as
> follows:
> 
> "The _SUN value is required to be unique among the slots ofthe same type.
> It is also recommended that this number match the slot number printed on
> the physical slot whenever possible."
> 
> So if we can know the value, we can identify the physical position of the
> slot in the system.
> 
> The patch creates "sun" file in sysfs for identifying physical position
> of the slot.
> 
> Reviewed-by: Toshi Kani <toshi.kani@hp.com>
> Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
> 
> ---
>   Documentation/ABI/testing/sysfs-devices-sun |   14 ++++++++++++++
>   drivers/acpi/scan.c                         |   24 ++++++++++++++++++++++++
>   include/acpi/acpi_bus.h                     |    1 +
>   3 files changed, 39 insertions(+)
> 
> Index: linux-3.6/include/acpi/acpi_bus.h
> ===================================================================
> --- linux-3.6.orig/include/acpi/acpi_bus.h	2012-10-09 11:54:17.690072343 +0900
> +++ linux-3.6/include/acpi/acpi_bus.h	2012-10-09 14:15:49.207794671 +0900
> @@ -208,6 +208,7 @@ struct acpi_device_pnp {
>   	struct list_head ids;		/* _HID and _CIDs */
>   	acpi_device_name device_name;	/* Driver-determined */
>   	acpi_device_class device_class;	/*        "          */
> +	unsigned long sun;		/* _SUN */
>   };
>   
>   #define acpi_device_bid(d)	((d)->pnp.bus_id)
> Index: linux-3.6/drivers/acpi/scan.c
> ===================================================================
> --- linux-3.6.orig/drivers/acpi/scan.c	2012-10-09 11:54:17.688072343 +0900
> +++ linux-3.6/drivers/acpi/scan.c	2012-10-09 14:15:49.211794675 +0900
> @@ -232,10 +232,20 @@ end:
>   }
>   static DEVICE_ATTR(path, 0444, acpi_device_path_show, NULL);
>   
> +static ssize_t
> +acpi_device_sun_show(struct device *dev, struct device_attribute *attr,
> +		     char *buf) {
> +	struct acpi_device *acpi_dev = to_acpi_device(dev);
> +
> +	return sprintf(buf, "%lu\n", acpi_dev->pnp.sun);
> +}
> +static DEVICE_ATTR(sun, 0444, acpi_device_sun_show, NULL);
> +
>   static int acpi_device_setup_files(struct acpi_device *dev)
>   {
>   	acpi_status status;
>   	acpi_handle temp;
> +	unsigned long long sun;
>   	int result = 0;
>   
>   	/*
> @@ -257,6 +267,16 @@ static int acpi_device_setup_files(struc
>   			goto end;
>   	}
>   
> +	status = acpi_evaluate_integer(dev->handle, "_SUN", NULL, &sun);
> +	if (ACPI_SUCCESS(status)) {
> +		dev->pnp.sun = (unsigned long)sun;
> +		result = device_create_file(&dev->dev, &dev_attr_sun);
> +		if (result)
> +			goto end;
> +	} else {
> +		dev->pnp.sun = (unsigned long)-1;
> +	}
> +
>           /*
>            * If device has _EJ0, 'eject' file is created that is used to trigger
>            * hot-removal function from userland.
> @@ -281,6 +301,10 @@ static void acpi_device_remove_files(str
>   	if (ACPI_SUCCESS(status))
>   		device_remove_file(&dev->dev, &dev_attr_eject);
>   
> +	status = acpi_get_handle(dev->handle, "_SUN", &temp);
> +	if (ACPI_SUCCESS(status))
> +		device_remove_file(&dev->dev, &dev_attr_sun);
> +
>   	device_remove_file(&dev->dev, &dev_attr_modalias);
>   	device_remove_file(&dev->dev, &dev_attr_hid);
>   	if (dev->handle)
> Index: linux-3.6/Documentation/ABI/testing/sysfs-devices-sun
> ===================================================================
> --- /dev/null	1970-01-01 00:00:00.000000000 +0000
> +++ linux-3.6/Documentation/ABI/testing/sysfs-devices-sun	2012-10-09 15:47:02.333245246 +0900
> @@ -0,0 +1,14 @@
> +Whatt:		/sys/devices/.../sun
> +Date:		October 2012
> +Contact:	Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
> +Description:
> +		The file contains a Slot-unique ID which provided by the _SUN
> +		method in the ACPI namespace. The value is written in Advanced
> +		Configuration and Power Interface Specification as follows:
> +
> +		"The _SUN value is required to be unique among the slots of
> +		the same type. It is also recommended that this number match
> +		the slot number printed on the physical slot whenever possible."
> +
> +		So reading the sysfs file, we can identify a physical position
> +		of the slot in the system.
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 



  reply	other threads:[~2012-10-10  8:32 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-09  6:49 [PATCH v5] create sun sysfs file Yasuaki Ishimatsu
2012-10-09  6:49 ` Yasuaki Ishimatsu
2012-10-10  8:31 ` Yasuaki Ishimatsu [this message]
2012-10-10  8:31   ` Yasuaki Ishimatsu
2012-10-11  2:52 ` Len Brown
2012-11-06  1:27   ` Len Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50753260.7030607@jp.fujitsu.com \
    --to=isimatu.yasuaki@jp.fujitsu.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=liuj97@gmail.com \
    --cc=toshi.kani@hp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.