Re: [patch 01/13] ACPI: bay: remove ACPI driver struct

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Applied.

thanks,
-Len

On Monday 05 February 2007 19:09, akpm@xxxxxxxxxxxxxxxxxxxx wrote:
> From: Kristen Carlson Accardi <kristen.c.accardi@xxxxxxxxx>
> 
> 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@xxxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> ---
> 
>  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@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux