From: Len Brown <lenb@kernel.org>
To: akpm@linux-foundation.org
Cc: linux-acpi@vger.kernel.org, kristen.c.accardi@intel.com
Subject: Re: [patch 01/13] ACPI: bay: remove ACPI driver struct
Date: Fri, 9 Feb 2007 00:42:36 -0500 [thread overview]
Message-ID: <200702090042.36147.lenb@kernel.org> (raw)
In-Reply-To: <200702060010.l160AAHK003715@shell0.pdx.osdl.net>
Applied.
thanks,
-Len
On Monday 05 February 2007 19:09, akpm@linux-foundation.org wrote:
> From: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
>
> The bay driver is a platform driver, and doesn't need to also be an acpi
> driver. Remove the acpi driver related structures and callbacks, they didn't
> do anything anyway. Switch to uevent for user space event notification.
>
> Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> ---
>
> drivers/acpi/bay.c | 99 +------------------------------------------
> 1 file changed, 4 insertions(+), 95 deletions(-)
>
> diff -puN drivers/acpi/bay.c~acpi-bay-remove-acpi-driver-struct drivers/acpi/bay.c
> --- a/drivers/acpi/bay.c~acpi-bay-remove-acpi-driver-struct
> +++ a/drivers/acpi/bay.c
> @@ -47,18 +47,6 @@ MODULE_LICENSE("GPL");
> acpi_get_name(h, ACPI_FULL_PATHNAME, &buffer);\
> printk(KERN_DEBUG PREFIX "%s: %s\n", prefix, s); }
> static void bay_notify(acpi_handle handle, u32 event, void *data);
> -static int acpi_bay_add(struct acpi_device *device);
> -static int acpi_bay_remove(struct acpi_device *device, int type);
> -
> -static struct acpi_driver acpi_bay_driver = {
> - .name = ACPI_BAY_DRIVER_NAME,
> - .class = ACPI_BAY_CLASS,
> - .ids = ACPI_BAY_HID,
> - .ops = {
> - .add = acpi_bay_add,
> - .remove = acpi_bay_remove,
> - },
> -};
>
> struct bay {
> acpi_handle handle;
> @@ -234,14 +222,6 @@ int eject_removable_drive(struct device
> }
> EXPORT_SYMBOL_GPL(eject_removable_drive);
>
> -static int acpi_bay_add(struct acpi_device *device)
> -{
> - bay_dprintk(device->handle, "adding bay device");
> - strcpy(acpi_device_name(device), "Dockable Bay");
> - strcpy(acpi_device_class(device), "bay");
> - return 0;
> -}
> -
> static int acpi_bay_add_fs(struct bay *bay)
> {
> int ret;
> @@ -339,52 +319,6 @@ bay_add_err:
> return -ENODEV;
> }
>
> -static int acpi_bay_remove(struct acpi_device *device, int type)
> -{
> - /*** FIXME: do something here */
> - return 0;
> -}
> -
> -/**
> - * bay_create_acpi_device - add new devices to acpi
> - * @handle - handle of the device to add
> - *
> - * This function will create a new acpi_device for the given
> - * handle if one does not exist already. This should cause
> - * acpi to scan for drivers for the given devices, and call
> - * matching driver's add routine.
> - *
> - * Returns a pointer to the acpi_device corresponding to the handle.
> - */
> -static struct acpi_device * bay_create_acpi_device(acpi_handle handle)
> -{
> - struct acpi_device *device = NULL;
> - struct acpi_device *parent_device;
> - acpi_handle parent;
> - int ret;
> -
> - bay_dprintk(handle, "Trying to get device");
> - if (acpi_bus_get_device(handle, &device)) {
> - /*
> - * no device created for this object,
> - * so we should create one.
> - */
> - bay_dprintk(handle, "No device for handle");
> - acpi_get_parent(handle, &parent);
> - if (acpi_bus_get_device(parent, &parent_device))
> - parent_device = NULL;
> -
> - ret = acpi_bus_add(&device, parent_device, handle,
> - ACPI_BUS_TYPE_DEVICE);
> - if (ret) {
> - pr_debug("error adding bus, %x\n",
> - -ret);
> - return NULL;
> - }
> - }
> - return device;
> -}
> -
> /**
> * bay_notify - act upon an acpi bay notification
> * @handle: the bay handle
> @@ -394,38 +328,19 @@ static struct acpi_device * bay_create_a
> */
> static void bay_notify(acpi_handle handle, u32 event, void *data)
> {
> - struct acpi_device *dev;
> + struct bay *bay_dev = (struct bay *)data;
> + struct device *dev = &bay_dev->pdev->dev;
>
> bay_dprintk(handle, "Bay event");
>
> switch(event) {
> case ACPI_NOTIFY_BUS_CHECK:
> - printk("Bus Check\n");
> case ACPI_NOTIFY_DEVICE_CHECK:
> - printk("Device Check\n");
> - dev = bay_create_acpi_device(handle);
> - if (dev)
> - acpi_bus_generate_event(dev, event, 0);
> - else
> - printk("No device for generating event\n");
> - /* wouldn't it be a good idea to just rescan SATA
> - * right here?
> - */
> - break;
> case ACPI_NOTIFY_EJECT_REQUEST:
> - printk("Eject request\n");
> - dev = bay_create_acpi_device(handle);
> - if (dev)
> - acpi_bus_generate_event(dev, event, 0);
> - else
> - printk("No device for generating eventn");
> -
> - /* wouldn't it be a good idea to just call the
> - * eject_device here if we were a SATA device?
> - */
> + kobject_uevent(&dev->kobj, KOBJ_CHANGE);
> break;
> default:
> - printk("unknown event %d\n", event);
> + printk(KERN_ERR PREFIX "Bay: unknown event %d\n", event);
> }
> }
>
> @@ -457,10 +372,6 @@ static int __init bay_init(void)
> acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,
> ACPI_UINT32_MAX, find_bay, &bays, NULL);
>
> - if (bays)
> - if ((acpi_bus_register_driver(&acpi_bay_driver) < 0))
> - printk(KERN_ERR "Unable to register bay driver\n");
> -
> if (!bays)
> return -ENODEV;
>
> @@ -481,8 +392,6 @@ static void __exit bay_exit(void)
> kfree(bay->name);
> kfree(bay);
> }
> -
> - acpi_bus_unregister_driver(&acpi_bay_driver);
> }
>
> postcore_initcall(bay_init);
> _
> -
> 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
>
prev parent reply other threads:[~2007-02-09 5:43 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-06 0:09 [patch 01/13] ACPI: bay: remove ACPI driver struct akpm
2007-02-09 5:42 ` Len Brown [this message]
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=200702090042.36147.lenb@kernel.org \
--to=lenb@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=kristen.c.accardi@intel.com \
--cc=linux-acpi@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox