All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexey Starikovskiy <aystarik@gmail.com>
To: Ike Panhc <ike.pan@canonical.com>
Cc: linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] ACPI: Add EC event managerment functions into header file
Date: Tue, 29 Sep 2009 02:16:12 +0400	[thread overview]
Message-ID: <4AC135AC.2010407@gmail.com> (raw)
In-Reply-To: <1254173448-18362-1-git-send-email-ike.pan@canonical.com>

These functions are never used anywhere, but sbshc.c.
What is the reason to make them known to the whole kernel?

Ike Panhc пишет:
> There are two functions for add/remove EC query handler functions, which
> exported without any definition in header files
>
> Patch against current checkout of linux-acpi 2.6.31 is below.
>
> In this patch, the following definitions has been added into
> include/linux/acpi.h
>  - typedef: acpi_ec_query_func
>  - struct: acpi_ec
>  - fucntions: acpi_ec_add_query_handler, acpi_ec_remove_query_handler
>
> And the following definitions has been removed from driver/acpi/ec.c
>  - typedef: acpi_ec_query_func
>  - struct: acpi_ec
>
> So that, the following externs and typedef could be remove from
> drivers/acpi/sbshc.c
>  - typedef: acpi_ec_query_func
>  - externs: acpi_ec_add_query_handler, acpi_ec_remove_query_handler
>
> Signed-off-by: Ike Panhc <ike.pan@canonical.com>
> ---
>  drivers/acpi/ec.c    |   22 +++++-----------------
>  drivers/acpi/sbshc.c |    8 --------
>  include/linux/acpi.h |   21 +++++++++++++++++++++
>  3 files changed, 26 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
> index f707960..8950c4f 100644
> --- a/drivers/acpi/ec.c
> +++ b/drivers/acpi/ec.c
> @@ -43,6 +43,7 @@
>  #include <acpi/acpi_bus.h>
>  #include <acpi/acpi_drivers.h>
>  #include <linux/dmi.h>
> +#include <linux/acpi.h>
>  
>  #define ACPI_EC_CLASS			"embedded_controller"
>  #define ACPI_EC_DEVICE_NAME		"Embedded Controller"
> @@ -80,10 +81,6 @@ enum {
>  					 * OpReg are installed */
>  };
>  
> -/* If we find an EC via the ECDT, we need to keep a ptr to its context */
> -/* External interfaces use first EC only, so remember */
> -typedef int (*acpi_ec_query_func) (void *data);
> -
>  struct acpi_ec_query_handler {
>  	struct list_head node;
>  	acpi_ec_query_func func;
> @@ -104,19 +101,10 @@ struct transaction {
>  	bool done;
>  };
>  
> -static struct acpi_ec {
> -	acpi_handle handle;
> -	unsigned long gpe;
> -	unsigned long command_addr;
> -	unsigned long data_addr;
> -	unsigned long global_lock;
> -	unsigned long flags;
> -	struct mutex lock;
> -	wait_queue_head_t wait;
> -	struct list_head list;
> -	struct transaction *curr;
> -	spinlock_t curr_lock;
> -} *boot_ec, *first_ec;
> +/* If we find an EC via the ECDT, we need to keep a ptr to its context */
> +/* External interfaces use first EC only, so remember */
> +static struct acpi_ec *boot_ec;
> +static struct acpi_ec *first_ec;
>  
>  static int EC_FLAGS_MSI; /* Out-of-spec MSI controller */
>  
> diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
> index d933980..d5550a5 100644
> --- a/drivers/acpi/sbshc.c
> +++ b/drivers/acpi/sbshc.c
> @@ -250,12 +250,6 @@ static int smbus_alarm(void *context)
>  	return 0;
>  }
>  
> -typedef int (*acpi_ec_query_func) (void *data);
> -
> -extern int acpi_ec_add_query_handler(struct acpi_ec *ec, u8 query_bit,
> -			      acpi_handle handle, acpi_ec_query_func func,
> -			      void *data);
> -
>  static int acpi_smbus_hc_add(struct acpi_device *device)
>  {
>  	int status;
> @@ -292,8 +286,6 @@ static int acpi_smbus_hc_add(struct acpi_device *device)
>  	return 0;
>  }
>  
> -extern void acpi_ec_remove_query_handler(struct acpi_ec *ec, u8 query_bit);
> -
>  static int acpi_smbus_hc_remove(struct acpi_device *device, int type)
>  {
>  	struct acpi_smb_hc *hc;
> diff --git a/include/linux/acpi.h b/include/linux/acpi.h
> index dfcd920..259eacb 100644
> --- a/include/linux/acpi.h
> +++ b/include/linux/acpi.h
> @@ -145,12 +145,33 @@ struct acpi_pci_driver {
>  int acpi_pci_register_driver(struct acpi_pci_driver *driver);
>  void acpi_pci_unregister_driver(struct acpi_pci_driver *driver);
>  
> +typedef int (*acpi_ec_query_func) (void *data);
> +
> +struct acpi_ec {
> +	acpi_handle handle;
> +	unsigned long gpe;
> +	unsigned long command_addr;
> +	unsigned long data_addr;
> +	unsigned long global_lock;
> +	unsigned long flags;
> +	struct mutex lock;
> +	wait_queue_head_t wait;
> +	struct list_head list;
> +	struct transaction *curr;
> +	spinlock_t curr_lock;
> +};
> +
>  extern int ec_read(u8 addr, u8 *val);
>  extern int ec_write(u8 addr, u8 val);
>  extern int ec_transaction(u8 command,
>                            const u8 *wdata, unsigned wdata_len,
>                            u8 *rdata, unsigned rdata_len,
>  			  int force_poll);
> +extern int acpi_ec_add_query_handler(struct acpi_ec *ec, u8 query_bit,
> +				      acpi_handle handle,
> +				      acpi_ec_query_func func, void *data);
> +extern void acpi_ec_remove_query_handler(struct acpi_ec *ec, u8 query_bit);
> +
>  
>  #if defined(CONFIG_ACPI_WMI) || defined(CONFIG_ACPI_WMI_MODULE)
>  
>   

--
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: Alexey Starikovskiy <aystarik@gmail.com>
To: Ike Panhc <ike.pan@canonical.com>
Cc: linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] ACPI: Add EC event managerment functions into header file
Date: Tue, 29 Sep 2009 02:16:12 +0400	[thread overview]
Message-ID: <4AC135AC.2010407@gmail.com> (raw)
In-Reply-To: <1254173448-18362-1-git-send-email-ike.pan@canonical.com>

These functions are never used anywhere, but sbshc.c.
What is the reason to make them known to the whole kernel?

Ike Panhc пишет:
> There are two functions for add/remove EC query handler functions, which
> exported without any definition in header files
>
> Patch against current checkout of linux-acpi 2.6.31 is below.
>
> In this patch, the following definitions has been added into
> include/linux/acpi.h
>  - typedef: acpi_ec_query_func
>  - struct: acpi_ec
>  - fucntions: acpi_ec_add_query_handler, acpi_ec_remove_query_handler
>
> And the following definitions has been removed from driver/acpi/ec.c
>  - typedef: acpi_ec_query_func
>  - struct: acpi_ec
>
> So that, the following externs and typedef could be remove from
> drivers/acpi/sbshc.c
>  - typedef: acpi_ec_query_func
>  - externs: acpi_ec_add_query_handler, acpi_ec_remove_query_handler
>
> Signed-off-by: Ike Panhc <ike.pan@canonical.com>
> ---
>  drivers/acpi/ec.c    |   22 +++++-----------------
>  drivers/acpi/sbshc.c |    8 --------
>  include/linux/acpi.h |   21 +++++++++++++++++++++
>  3 files changed, 26 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
> index f707960..8950c4f 100644
> --- a/drivers/acpi/ec.c
> +++ b/drivers/acpi/ec.c
> @@ -43,6 +43,7 @@
>  #include <acpi/acpi_bus.h>
>  #include <acpi/acpi_drivers.h>
>  #include <linux/dmi.h>
> +#include <linux/acpi.h>
>  
>  #define ACPI_EC_CLASS			"embedded_controller"
>  #define ACPI_EC_DEVICE_NAME		"Embedded Controller"
> @@ -80,10 +81,6 @@ enum {
>  					 * OpReg are installed */
>  };
>  
> -/* If we find an EC via the ECDT, we need to keep a ptr to its context */
> -/* External interfaces use first EC only, so remember */
> -typedef int (*acpi_ec_query_func) (void *data);
> -
>  struct acpi_ec_query_handler {
>  	struct list_head node;
>  	acpi_ec_query_func func;
> @@ -104,19 +101,10 @@ struct transaction {
>  	bool done;
>  };
>  
> -static struct acpi_ec {
> -	acpi_handle handle;
> -	unsigned long gpe;
> -	unsigned long command_addr;
> -	unsigned long data_addr;
> -	unsigned long global_lock;
> -	unsigned long flags;
> -	struct mutex lock;
> -	wait_queue_head_t wait;
> -	struct list_head list;
> -	struct transaction *curr;
> -	spinlock_t curr_lock;
> -} *boot_ec, *first_ec;
> +/* If we find an EC via the ECDT, we need to keep a ptr to its context */
> +/* External interfaces use first EC only, so remember */
> +static struct acpi_ec *boot_ec;
> +static struct acpi_ec *first_ec;
>  
>  static int EC_FLAGS_MSI; /* Out-of-spec MSI controller */
>  
> diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
> index d933980..d5550a5 100644
> --- a/drivers/acpi/sbshc.c
> +++ b/drivers/acpi/sbshc.c
> @@ -250,12 +250,6 @@ static int smbus_alarm(void *context)
>  	return 0;
>  }
>  
> -typedef int (*acpi_ec_query_func) (void *data);
> -
> -extern int acpi_ec_add_query_handler(struct acpi_ec *ec, u8 query_bit,
> -			      acpi_handle handle, acpi_ec_query_func func,
> -			      void *data);
> -
>  static int acpi_smbus_hc_add(struct acpi_device *device)
>  {
>  	int status;
> @@ -292,8 +286,6 @@ static int acpi_smbus_hc_add(struct acpi_device *device)
>  	return 0;
>  }
>  
> -extern void acpi_ec_remove_query_handler(struct acpi_ec *ec, u8 query_bit);
> -
>  static int acpi_smbus_hc_remove(struct acpi_device *device, int type)
>  {
>  	struct acpi_smb_hc *hc;
> diff --git a/include/linux/acpi.h b/include/linux/acpi.h
> index dfcd920..259eacb 100644
> --- a/include/linux/acpi.h
> +++ b/include/linux/acpi.h
> @@ -145,12 +145,33 @@ struct acpi_pci_driver {
>  int acpi_pci_register_driver(struct acpi_pci_driver *driver);
>  void acpi_pci_unregister_driver(struct acpi_pci_driver *driver);
>  
> +typedef int (*acpi_ec_query_func) (void *data);
> +
> +struct acpi_ec {
> +	acpi_handle handle;
> +	unsigned long gpe;
> +	unsigned long command_addr;
> +	unsigned long data_addr;
> +	unsigned long global_lock;
> +	unsigned long flags;
> +	struct mutex lock;
> +	wait_queue_head_t wait;
> +	struct list_head list;
> +	struct transaction *curr;
> +	spinlock_t curr_lock;
> +};
> +
>  extern int ec_read(u8 addr, u8 *val);
>  extern int ec_write(u8 addr, u8 val);
>  extern int ec_transaction(u8 command,
>                            const u8 *wdata, unsigned wdata_len,
>                            u8 *rdata, unsigned rdata_len,
>  			  int force_poll);
> +extern int acpi_ec_add_query_handler(struct acpi_ec *ec, u8 query_bit,
> +				      acpi_handle handle,
> +				      acpi_ec_query_func func, void *data);
> +extern void acpi_ec_remove_query_handler(struct acpi_ec *ec, u8 query_bit);
> +
>  
>  #if defined(CONFIG_ACPI_WMI) || defined(CONFIG_ACPI_WMI_MODULE)
>  
>   


  reply	other threads:[~2009-09-28 22:16 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-28 21:30 [PATCH] ACPI: Add EC event managerment functions into header file Ike Panhc
2009-09-28 22:16 ` Alexey Starikovskiy [this message]
2009-09-28 22:16   ` Alexey Starikovskiy
2009-09-29  2:28   ` Ike Panhc
2009-09-29  2:28     ` Ike Panhc
2009-09-30 18:12     ` Alexey Starikovskiy
2009-09-30 18:12       ` Alexey Starikovskiy

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=4AC135AC.2010407@gmail.com \
    --to=aystarik@gmail.com \
    --cc=ike.pan@canonical.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@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 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.