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

[Xen-changelog] [linux-2.6.18-xen] X86 and IA64: move px external logical to common place



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1222434430 -3600
# Node ID cc6fc966c6139491f72d48a06d45f0767faab225
# Parent  583086d5cd26936a2cd96a98e48720a86ca60dd0
X86 and IA64: move px external logical to common place

this patch move the xen/acpi convert routine to common place,
since it can be used by both x86 and ia64 architecture.

Signed-off-by: Yu Ke <ke.yu@xxxxxxxxx>
Signed-off-by: Liu Jinsong <jinsong.liu@xxxxxxxxx>
---
 arch/i386/kernel/acpi/processor_extcntl_xen.c |   46 ++------------------------
 include/acpi/processor.h                      |   43 +++++++++++++++++++++++-
 2 files changed, 46 insertions(+), 43 deletions(-)

diff -r 583086d5cd26 -r cc6fc966c613 
arch/i386/kernel/acpi/processor_extcntl_xen.c
--- a/arch/i386/kernel/acpi/processor_extcntl_xen.c     Thu Sep 25 16:40:13 
2008 +0100
+++ b/arch/i386/kernel/acpi/processor_extcntl_xen.c     Fri Sep 26 14:07:10 
2008 +0100
@@ -99,44 +99,6 @@ static int xen_cx_notifier(struct acpi_p
        ret = HYPERVISOR_platform_op(&op);
        kfree(buf);
        return ret;
-}
-
-static void convert_pct_reg(struct xen_pct_register *xpct,
-       struct acpi_pct_register *apct)
-{
-       xpct->descriptor = apct->descriptor;
-       xpct->length     = apct->length;
-       xpct->space_id   = apct->space_id;
-       xpct->bit_width  = apct->bit_width;
-       xpct->bit_offset = apct->bit_offset;
-       xpct->reserved   = apct->reserved;
-       xpct->address    = apct->address;
-}
-
-static void convert_pss_states(struct xen_processor_px *xpss, 
-       struct acpi_processor_px *apss, int state_count)
-{
-       int i;
-       for(i=0; i<state_count; i++) {
-               xpss->core_frequency     = apss->core_frequency;
-               xpss->power              = apss->power;
-               xpss->transition_latency = apss->transition_latency;
-               xpss->bus_master_latency = apss->bus_master_latency;
-               xpss->control            = apss->control;
-               xpss->status             = apss->status;
-               xpss++;
-               apss++;
-       }
-}
-
-static void convert_psd_pack(struct xen_psd_package *xpsd,
-       struct acpi_psd_package *apsd)
-{
-       xpsd->num_entries    = apsd->num_entries;
-       xpsd->revision       = apsd->revision;
-       xpsd->domain         = apsd->domain;
-       xpsd->coord_type     = apsd->coord_type;
-       xpsd->num_processors = apsd->num_processors;
 }
 
 static int xen_px_notifier(struct acpi_processor *pr, int action)
@@ -179,20 +141,20 @@ static int xen_px_notifier(struct acpi_p
                perf->platform_limit = pr->performance_platform_limit;
 
                /* pct */
-               convert_pct_reg(&perf->control_register, &px->control_register);
-               convert_pct_reg(&perf->status_register, &px->status_register);
+               xen_convert_pct_reg(&perf->control_register, 
&px->control_register);
+               xen_convert_pct_reg(&perf->status_register, 
&px->status_register);
 
                /* pss */
                perf->state_count = px->state_count;
                states = 
kzalloc(px->state_count*sizeof(xen_processor_px_t),GFP_KERNEL);
                if (!states)
                        return -ENOMEM;
-               convert_pss_states(states, px->states, px->state_count);
+               xen_convert_pss_states(states, px->states, px->state_count);
                set_xen_guest_handle(perf->states, states);
 
                /* psd */
                pdomain = &px->domain_info;
-               convert_psd_pack(&perf->domain_info, pdomain);
+               xen_convert_psd_pack(&perf->domain_info, pdomain);
                if (pdomain->coord_type == DOMAIN_COORD_TYPE_SW_ALL)
                        perf->shared_type = CPUFREQ_SHARED_TYPE_ALL;
                else if (pdomain->coord_type == DOMAIN_COORD_TYPE_SW_ANY)
diff -r 583086d5cd26 -r cc6fc966c613 include/acpi/processor.h
--- a/include/acpi/processor.h  Thu Sep 25 16:40:13 2008 +0100
+++ b/include/acpi/processor.h  Fri Sep 26 14:07:10 2008 +0100
@@ -422,4 +422,45 @@ static inline int processor_extcntl_prep
 }
 #endif /* CONFIG_PROCESSOR_EXTERNAL_CONTROL */
 
-#endif
+#ifdef CONFIG_XEN
+static inline void xen_convert_pct_reg(struct xen_pct_register *xpct,
+       struct acpi_pct_register *apct)
+{
+       xpct->descriptor = apct->descriptor;
+       xpct->length     = apct->length;
+       xpct->space_id   = apct->space_id;
+       xpct->bit_width  = apct->bit_width;
+       xpct->bit_offset = apct->bit_offset;
+       xpct->reserved   = apct->reserved;
+       xpct->address    = apct->address;
+}
+
+static inline void xen_convert_pss_states(struct xen_processor_px *xpss, 
+       struct acpi_processor_px *apss, int state_count)
+{
+       int i;
+       for(i=0; i<state_count; i++) {
+               xpss->core_frequency     = apss->core_frequency;
+               xpss->power              = apss->power;
+               xpss->transition_latency = apss->transition_latency;
+               xpss->bus_master_latency = apss->bus_master_latency;
+               xpss->control            = apss->control;
+               xpss->status             = apss->status;
+               xpss++;
+               apss++;
+       }
+}
+
+static inline void xen_convert_psd_pack(struct xen_psd_package *xpsd,
+       struct acpi_psd_package *apsd)
+{
+       xpsd->num_entries    = apsd->num_entries;
+       xpsd->revision       = apsd->revision;
+       xpsd->domain         = apsd->domain;
+       xpsd->coord_type     = apsd->coord_type;
+       xpsd->num_processors = apsd->num_processors;
+}
+
+#endif /* CONFIG_XEN */
+
+#endif

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.