From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: Justin Forbes <jmforbes@linuxtx.org>,
Zwane Mwaikambo <zwane@arm.linux.org.uk>,
"Theodore Ts'o" <tytso@mit.edu>,
Randy Dunlap <rdunlap@xenotime.net>,
Dave Jones <davej@redhat.com>,
Chuck Wolber <chuckw@quantumlinux.com>,
Chris Wedgwood <reviews@ml.cw.f00f.org>,
Michael Krufky <mkrufky@linuxtv.org>,
Chuck Ebbert <cebbert@redhat.com>,
Domenico Andreoli <cavokz@gmail.com>, Willy Tarreau <w@1wt.eu>,
Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
Jake Edge <jake@lwn.net>, Eugene Teo <eteo@redhat.com>,
torvalds@linux-foundation.org, akpm@linux-foundation.org,
alan@lxorguk.ukuu.org.uk,
Alexey Starikovskiy <astarikovskiy@suse.de>,
"Rafael J. Wysocki" <rjw@suse.com>,
Len Brown <len.brown@intel.com>
Subject: [patch 48/57] ACPI: EC: Rename some variables
Date: Tue, 4 Nov 2008 15:33:18 -0800 [thread overview]
Message-ID: <20081104233318.GW659@suse.de> (raw)
In-Reply-To: <20081104233028.GA659@suse.de>
[-- Attachment #1: acpi-ec-rename-some-variables.patch --]
[-- Type: text/plain, Size: 8692 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Alexey Starikovskiy <astarikovskiy@suse.de>
commit 8463200a00fe2aea938b40173198a0983f2929ef upstream
(needed by the next patch)
No functional changes.
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Acked-by: Rafael J. Wysocki <rjw@suse.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/acpi/ec.c | 118 ++++++++++++++++++++++++++++--------------------------
1 file changed, 63 insertions(+), 55 deletions(-)
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -95,10 +95,11 @@ struct acpi_ec_query_handler {
u8 query_bit;
};
-struct transaction_data {
+struct transaction {
const u8 *wdata;
u8 *rdata;
unsigned short irq_count;
+ u8 command;
u8 wlen;
u8 rlen;
};
@@ -113,8 +114,8 @@ static struct acpi_ec {
struct mutex lock;
wait_queue_head_t wait;
struct list_head list;
- struct transaction_data *t;
- spinlock_t t_lock;
+ struct transaction *curr;
+ spinlock_t curr_lock;
} *boot_ec, *first_ec;
/*
@@ -176,37 +177,37 @@ static int ec_transaction_done(struct ac
{
unsigned long flags;
int ret = 0;
- spin_lock_irqsave(&ec->t_lock, flags);
- if (!ec->t || (!ec->t->wlen && !ec->t->rlen))
+ spin_lock_irqsave(&ec->curr_lock, flags);
+ if (!ec->curr || (!ec->curr->wlen && !ec->curr->rlen))
ret = 1;
- spin_unlock_irqrestore(&ec->t_lock, flags);
+ spin_unlock_irqrestore(&ec->curr_lock, flags);
return ret;
}
static void gpe_transaction(struct acpi_ec *ec, u8 status)
{
unsigned long flags;
- spin_lock_irqsave(&ec->t_lock, flags);
- if (!ec->t)
+ spin_lock_irqsave(&ec->curr_lock, flags);
+ if (!ec->curr)
goto unlock;
- if (ec->t->wlen > 0) {
+ if (ec->curr->wlen > 0) {
if ((status & ACPI_EC_FLAG_IBF) == 0) {
- acpi_ec_write_data(ec, *(ec->t->wdata++));
- --ec->t->wlen;
+ acpi_ec_write_data(ec, *(ec->curr->wdata++));
+ --ec->curr->wlen;
} else
/* false interrupt, state didn't change */
- ++ec->t->irq_count;
+ ++ec->curr->irq_count;
- } else if (ec->t->rlen > 0) {
+ } else if (ec->curr->rlen > 0) {
if ((status & ACPI_EC_FLAG_OBF) == 1) {
- *(ec->t->rdata++) = acpi_ec_read_data(ec);
- --ec->t->rlen;
+ *(ec->curr->rdata++) = acpi_ec_read_data(ec);
+ --ec->curr->rlen;
} else
/* false interrupt, state didn't change */
- ++ec->t->irq_count;
+ ++ec->curr->irq_count;
}
unlock:
- spin_unlock_irqrestore(&ec->t_lock, flags);
+ spin_unlock_irqrestore(&ec->curr_lock, flags);
}
static int acpi_ec_wait(struct acpi_ec *ec)
@@ -248,15 +249,11 @@ static int ec_poll(struct acpi_ec *ec)
return -ETIME;
}
-static int acpi_ec_transaction_unlocked(struct acpi_ec *ec, u8 command,
- const u8 * wdata, unsigned wdata_len,
- u8 * rdata, unsigned rdata_len,
+static int acpi_ec_transaction_unlocked(struct acpi_ec *ec,
+ struct transaction *t,
int force_poll)
{
unsigned long tmp;
- struct transaction_data t = {.wdata = wdata, .rdata = rdata,
- .wlen = wdata_len, .rlen = rdata_len,
- .irq_count = 0};
int ret = 0;
pr_debug(PREFIX "transaction start\n");
/* disable GPE during transaction if storm is detected */
@@ -265,29 +262,30 @@ static int acpi_ec_transaction_unlocked(
acpi_disable_gpe(NULL, ec->gpe, ACPI_NOT_ISR);
}
/* start transaction */
- spin_lock_irqsave(&ec->t_lock, tmp);
+ spin_lock_irqsave(&ec->curr_lock, tmp);
/* following two actions should be kept atomic */
- ec->t = &t;
- acpi_ec_write_cmd(ec, command);
- if (command == ACPI_EC_COMMAND_QUERY)
+ t->irq_count = 0;
+ ec->curr = t;
+ acpi_ec_write_cmd(ec, ec->curr->command);
+ if (ec->curr->command == ACPI_EC_COMMAND_QUERY)
clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags);
- spin_unlock_irqrestore(&ec->t_lock, tmp);
+ spin_unlock_irqrestore(&ec->curr_lock, tmp);
/* if we selected poll mode or failed in GPE-mode do a poll loop */
if (force_poll ||
!test_bit(EC_FLAGS_GPE_MODE, &ec->flags) ||
acpi_ec_wait(ec))
ret = ec_poll(ec);
pr_debug(PREFIX "transaction end\n");
- spin_lock_irqsave(&ec->t_lock, tmp);
- ec->t = NULL;
- spin_unlock_irqrestore(&ec->t_lock, tmp);
+ spin_lock_irqsave(&ec->curr_lock, tmp);
+ ec->curr = NULL;
+ spin_unlock_irqrestore(&ec->curr_lock, tmp);
if (test_bit(EC_FLAGS_GPE_STORM, &ec->flags)) {
/* check if we received SCI during transaction */
ec_check_sci(ec, acpi_ec_read_status(ec));
/* it is safe to enable GPE outside of transaction */
acpi_enable_gpe(NULL, ec->gpe, ACPI_NOT_ISR);
} else if (test_bit(EC_FLAGS_GPE_MODE, &ec->flags) &&
- t.irq_count > ACPI_EC_STORM_THRESHOLD) {
+ t->irq_count > ACPI_EC_STORM_THRESHOLD) {
pr_debug(PREFIX "GPE storm detected\n");
set_bit(EC_FLAGS_GPE_STORM, &ec->flags);
}
@@ -300,17 +298,15 @@ static int ec_check_ibf0(struct acpi_ec
return (status & ACPI_EC_FLAG_IBF) == 0;
}
-static int acpi_ec_transaction(struct acpi_ec *ec, u8 command,
- const u8 * wdata, unsigned wdata_len,
- u8 * rdata, unsigned rdata_len,
+static int acpi_ec_transaction(struct acpi_ec *ec, struct transaction *t,
int force_poll)
{
int status;
u32 glk;
- if (!ec || (wdata_len && !wdata) || (rdata_len && !rdata))
+ if (!ec || (!t) || (t->wlen && !t->wdata) || (t->rlen && !t->rdata))
return -EINVAL;
- if (rdata)
- memset(rdata, 0, rdata_len);
+ if (t->rdata)
+ memset(t->rdata, 0, t->rlen);
mutex_lock(&ec->lock);
if (ec->global_lock) {
status = acpi_acquire_global_lock(ACPI_EC_UDELAY_GLK, &glk);
@@ -326,10 +322,7 @@ static int acpi_ec_transaction(struct ac
status = -ETIME;
goto end;
}
- status = acpi_ec_transaction_unlocked(ec, command,
- wdata, wdata_len,
- rdata, rdata_len,
- force_poll);
+ status = acpi_ec_transaction_unlocked(ec, t, force_poll);
end:
if (ec->global_lock)
acpi_release_global_lock(glk);
@@ -345,23 +338,32 @@ unlock:
int acpi_ec_burst_enable(struct acpi_ec *ec)
{
u8 d;
- return acpi_ec_transaction(ec, ACPI_EC_BURST_ENABLE, NULL, 0, &d, 1, 0);
+ struct transaction t = {.command = ACPI_EC_BURST_ENABLE,
+ .wdata = NULL, .rdata = &d,
+ .wlen = 0, .rlen = 1};
+
+ return acpi_ec_transaction(ec, &t, 0);
}
int acpi_ec_burst_disable(struct acpi_ec *ec)
{
+ struct transaction t = {.command = ACPI_EC_BURST_DISABLE,
+ .wdata = NULL, .rdata = NULL,
+ .wlen = 0, .rlen = 0};
+
return (acpi_ec_read_status(ec) & ACPI_EC_FLAG_BURST) ?
- acpi_ec_transaction(ec, ACPI_EC_BURST_DISABLE,
- NULL, 0, NULL, 0, 0) : 0;
+ acpi_ec_transaction(ec, &t, 0) : 0;
}
static int acpi_ec_read(struct acpi_ec *ec, u8 address, u8 * data)
{
int result;
u8 d;
+ struct transaction t = {.command = ACPI_EC_COMMAND_READ,
+ .wdata = &address, .rdata = &d,
+ .wlen = 1, .rlen = 1};
- result = acpi_ec_transaction(ec, ACPI_EC_COMMAND_READ,
- &address, 1, &d, 1, 0);
+ result = acpi_ec_transaction(ec, &t, 0);
*data = d;
return result;
}
@@ -369,8 +371,11 @@ static int acpi_ec_read(struct acpi_ec *
static int acpi_ec_write(struct acpi_ec *ec, u8 address, u8 data)
{
u8 wdata[2] = { address, data };
- return acpi_ec_transaction(ec, ACPI_EC_COMMAND_WRITE,
- wdata, 2, NULL, 0, 0);
+ struct transaction t = {.command = ACPI_EC_COMMAND_WRITE,
+ .wdata = wdata, .rdata = NULL,
+ .wlen = 2, .rlen = 0};
+
+ return acpi_ec_transaction(ec, &t, 0);
}
/*
@@ -432,12 +437,13 @@ int ec_transaction(u8 command,
u8 * rdata, unsigned rdata_len,
int force_poll)
{
+ struct transaction t = {.command = command,
+ .wdata = wdata, .rdata = rdata,
+ .wlen = wdata_len, .rlen = rdata_len};
if (!first_ec)
return -ENODEV;
- return acpi_ec_transaction(first_ec, command, wdata,
- wdata_len, rdata, rdata_len,
- force_poll);
+ return acpi_ec_transaction(first_ec, &t, force_poll);
}
EXPORT_SYMBOL(ec_transaction);
@@ -446,7 +452,9 @@ static int acpi_ec_query(struct acpi_ec
{
int result;
u8 d;
-
+ struct transaction t = {.command = ACPI_EC_COMMAND_QUERY,
+ .wdata = NULL, .rdata = &d,
+ .wlen = 0, .rlen = 1};
if (!ec || !data)
return -EINVAL;
@@ -456,7 +464,7 @@ static int acpi_ec_query(struct acpi_ec
* bit to be cleared (and thus clearing the interrupt source).
*/
- result = acpi_ec_transaction(ec, ACPI_EC_COMMAND_QUERY, NULL, 0, &d, 1, 0);
+ result = acpi_ec_transaction(ec, &t, 0);
if (result)
return result;
@@ -696,7 +704,7 @@ static struct acpi_ec *make_acpi_ec(void
mutex_init(&ec->lock);
init_waitqueue_head(&ec->wait);
INIT_LIST_HEAD(&ec->list);
- spin_lock_init(&ec->t_lock);
+ spin_lock_init(&ec->curr_lock);
return ec;
}
--
next prev parent reply other threads:[~2008-11-04 23:55 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20081104232144.186593464@mini.kroah.org>
2008-11-04 23:30 ` [patch 00/57] 2.6.27-stable review Greg KH
2008-11-04 23:30 ` [patch 01/57] agp: Fix stolen memory counting on G4X Greg KH
2008-11-04 23:30 ` [patch 02/57] SCSI: sd: Fix handling of NO_SENSE check condition Greg KH
2008-11-04 23:31 ` [patch 03/57] S390: Fix sysdev class file creation Greg KH
2008-11-04 23:31 ` [patch 04/57] sysfs: Fix return values for sysdev_store_{ulong, int} Greg KH
2008-11-04 23:31 ` [patch 05/57] ipmi: add MODULE_ALIAS to load ipmi_devintf with ipmi_si Greg KH
2008-11-04 23:31 ` [patch 06/57] USB: fix crash when URBs are unlinked after the device is gone Greg KH
2008-11-04 23:31 ` [patch 07/57] ALSA: hda - Add reboot notifier Greg KH
2008-11-04 23:31 ` [patch 08/57] kbuild: mkspec - fix build rpm Greg KH
2008-11-04 23:31 ` [patch 09/57] x86: fix /dev/mem mmap breakage when PAT is disabled Greg KH
2008-11-04 23:31 ` [patch 10/57] atl1: fix vlan tag regression Greg KH
2008-11-04 23:31 ` [patch 11/57] libertas: fix buffer overrun Greg KH
2008-11-04 23:31 ` [patch 12/57] Revert "HID: Invert HWHEEL mappings for some Logitech mice" Greg KH
2008-11-04 23:31 ` [patch 13/57] libata: initialize port_task when !CONFIG_ATA_SFF Greg KH
2008-11-04 23:31 ` [patch 14/57] syncookies: fix inclusion of tcp options in syn-ack Greg KH
2008-11-04 23:31 ` [patch 15/57] tcp: Restore ordering of TCP options for the sake of inter-operability Greg KH
2008-11-04 23:31 ` [patch 16/57] tcpv6: fix option space offsets with md5 Greg KH
2008-11-04 23:31 ` [patch 17/57] pkt_sched: sch_generic: Fix oops in sch_teql Greg KH
2008-11-04 23:31 ` [patch 18/57] sparc64: Fix race in arch/sparc64/kernel/trampoline.S Greg KH
2008-11-04 23:31 ` [patch 19/57] math-emu: Fix signalling of underflow and inexact while packing result Greg KH
2008-11-04 23:31 ` [patch 20/57] firewire: fix setting tag and sy in iso transmission Greg KH
2008-11-04 23:31 ` [patch 21/57] firewire: fix ioctl() return code Greg KH
2008-11-04 23:31 ` [patch 22/57] firewire: Survive more than 256 bus resets Greg KH
2008-11-04 23:31 ` [patch 23/57] firewire: fix struct fw_node memory leak Greg KH
2008-11-04 23:31 ` [patch 24/57] firewire: fw-sbp2: delay first login to avoid retries Greg KH
2008-11-04 23:31 ` [patch 25/57] firewire: fw-sbp2: fix races Greg KH
2008-11-04 23:31 ` [patch 26/57] ACPI: Always report a sync event after a lid state change Greg KH
2008-11-04 23:31 ` Greg KH
2008-11-04 23:31 ` [patch 27/57] powerpc: fix i2c on PPC linkstation / kurobox machines Greg KH
2008-11-04 23:31 ` [patch 28/57] powerpc: Reserve in bootmem lmb reserved regions that cross NUMA nodes Greg KH
2008-11-04 23:32 ` [patch 29/57] powerpc/numa: Make memory reserve code more robust Greg KH
2008-11-04 23:32 ` [patch 30/57] powerpc: Dont use a 16G page if beyond mem= limits Greg KH
2008-11-04 23:32 ` [patch 31/57] i2c: The i2c mailing list is moving Greg KH
2008-11-04 23:32 ` [patch 32/57] scx200_i2c: Add missing class parameter Greg KH
2008-11-04 23:32 ` [patch 33/57] ALSA: use correct lock in snd_ctl_dev_disconnect() Greg KH
2008-11-04 23:32 ` [patch 34/57] V4L: pvrusb2: Keep MPEG PTSs from drifting away Greg KH
2008-11-04 23:32 ` [patch 35/57] DVB: s5h1411: bugfix: Setting serial or parallel mode could destroy bits Greg KH
2008-11-04 23:32 ` [patch 36/57] DVB: s5h1411: Perform s5h1411 soft reset after tuning Greg KH
2008-11-04 23:32 ` [patch 37/57] DVB: s5h1411: Power down s5h1411 when not in use Greg KH
2008-11-04 23:32 ` [patch 38/57] PCI: fix 64-vbit prefetchable memory resource BARs Greg KH
2008-11-04 23:32 ` [patch 39/57] sched: disable the hrtick for now Greg KH
2008-11-04 23:33 ` [patch 40/57] sched_clock: prevent scd->clock from moving backwards Greg KH
2008-11-04 23:33 ` [patch 41/57] x86: avoid dereferencing beyond stack + THREAD_SIZE Greg KH
2008-11-04 23:33 ` [patch 42/57] rtc-cmos: look for PNP RTC first, then for platform RTC Greg KH
2008-11-04 23:33 ` [patch 43/57] USB: storage: Avoid I/O errors when issuing SCSI ioctls to JMicron USB/ATA bridge Greg KH
2008-11-04 23:33 ` [patch 44/57] x86: register a platform RTC device if PNP doesnt describe it Greg KH
2008-11-04 23:33 ` [patch 45/57] sata_promise: add ATA engine reset to reset ops Greg KH
2008-11-04 23:33 ` [patch 46/57] sata_nv: fix generic, nf2/3 detection regression Greg KH
2008-11-04 23:33 ` [patch 47/57] ACPI: EC: do transaction from interrupt context Greg KH
2008-11-04 23:33 ` Greg KH [this message]
2008-11-04 23:33 ` [patch 49/57] ACPI: EC: Check for IBF=0 periodically if not in GPE mode Greg KH
2008-11-04 23:33 ` [patch 50/57] libata: Fix LBA48 on pata_it821x RAID volumes Greg KH
2008-11-04 23:33 ` [patch 51/57] ACPI: Ingore the RESET_REG_SUP bit when using ACPI reset mechanism Greg KH
2008-11-05 0:48 ` Zhao Yakui
2008-11-05 1:02 ` Greg KH
2008-11-04 23:33 ` [patch 52/57] ACPI: Clear WAK_STS on resume Greg KH
2008-11-04 23:33 ` [patch 53/57] Input: atkbd - expand Latitudes force release quirk to other Dells Greg KH
2008-11-04 23:33 ` [patch 54/57] hfsplus: fix Buffer overflow with a corrupted image Greg KH
2008-11-04 23:33 ` [patch 55/57] hfsplus: check read_mapping_page() return value Greg KH
2008-11-04 23:33 ` [patch 56/57] bonding: fix panic when taking bond interface down before removing module Greg KH
2008-11-04 23:33 ` [patch 57/57] file caps: always start with clear bprm->caps_* Greg KH
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=20081104233318.GW659@suse.de \
--to=gregkh@suse.de \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=astarikovskiy@suse.de \
--cc=cavokz@gmail.com \
--cc=cebbert@redhat.com \
--cc=chuckw@quantumlinux.com \
--cc=davej@redhat.com \
--cc=eteo@redhat.com \
--cc=jake@lwn.net \
--cc=jmforbes@linuxtx.org \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mkrufky@linuxtv.org \
--cc=rbranco@la.checkpoint.com \
--cc=rdunlap@xenotime.net \
--cc=reviews@ml.cw.f00f.org \
--cc=rjw@suse.com \
--cc=stable@kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=tytso@mit.edu \
--cc=w@1wt.eu \
--cc=zwane@arm.linux.org.uk \
/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.