From: Li Peng <[email protected]>

Move the opregion related source to seperate file.

Change-Id: Ideea745f93cf9a8796ccc9a2caa0814378a0deec
Signed-off-by: Li Peng <[email protected]>
Signed-off-by: Justin Dou <[email protected]>
---
 drivers/staging/mrst/drv/psb_drv.c            |   30 ----------
 drivers/staging/mrst/drv/psb_drv.h            |   17 +++++
 drivers/staging/mrst/drv/psb_intel_drv.h      |   31 ----------
 drivers/staging/mrst/drv/psb_intel_opregion.c |   78 +++++++++++++++++++++++++
 drivers/staging/mrst/medfield/Makefile        |    1 +
 drivers/staging/mrst/moorestown/Makefile      |    1 +
 6 files changed, 97 insertions(+), 61 deletions(-)
 create mode 100644 drivers/staging/mrst/drv/psb_intel_opregion.c

diff --git a/drivers/staging/mrst/drv/psb_drv.c 
b/drivers/staging/mrst/drv/psb_drv.c
index ad17a09..3624152 100644
--- a/drivers/staging/mrst/drv/psb_drv.c
+++ b/drivers/staging/mrst/drv/psb_drv.c
@@ -982,36 +982,6 @@ out_err:
        return ret;
 }
 
-static int psb_intel_opregion_init(struct drm_device *dev)
-{
-       struct drm_psb_private *dev_priv = dev->dev_private;
-       /*struct psb_intel_opregion * opregion = &dev_priv->opregion;*/
-       u32 opregion_phy;
-       void *base;
-       u32 *lid_state;
-
-       dev_priv->lid_state = NULL;
-
-       pci_read_config_dword(dev->pdev, 0xfc, &opregion_phy);
-       if (opregion_phy == 0) {
-               DRM_DEBUG("Opregion not supported, won't support lid-switch\n");
-               return -ENOTSUPP;
-       }
-       DRM_DEBUG("OpRegion detected at 0x%8x\n", opregion_phy);
-
-       base = ioremap(opregion_phy, 8*1024);
-       if (!base)
-               return -ENOMEM;
-
-       lid_state = base + 0x01ac;
-
-       DRM_DEBUG("Lid switch state 0x%08x\n", *lid_state);
-
-       dev_priv->lid_state = lid_state;
-       dev_priv->lid_last_state = *lid_state;
-       return 0;
-}
-
 static int psb_driver_unload(struct drm_device *dev)
 {
        struct drm_psb_private *dev_priv =
diff --git a/drivers/staging/mrst/drv/psb_drv.h 
b/drivers/staging/mrst/drv/psb_drv.h
index 99603cf..6f25b7d 100644
--- a/drivers/staging/mrst/drv/psb_drv.h
+++ b/drivers/staging/mrst/drv/psb_drv.h
@@ -270,6 +270,19 @@ enum {
 #define PSB_PCIx_MSI_ADDR_LOC          0x94
 #define PSB_PCIx_MSI_DATA_LOC          0x98
 
+struct opregion_header;
+struct opregion_acpi;
+struct opregion_swsci;
+struct opregion_asle;
+
+struct psb_intel_opregion {
+       struct opregion_header *header;
+       struct opregion_acpi *acpi;
+       struct opregion_swsci *swsci;
+       struct opregion_asle *asle;
+       int enabled;
+};
+
 /*
  *User options.
  */
@@ -1150,6 +1163,10 @@ extern int lnc_video_getparam(struct drm_device *dev, 
void *data,
 extern int psb_try_power_down_topaz(struct drm_device *dev);
 extern int psb_try_power_down_msvdx(struct drm_device *dev);
 
+/*
+ * psb_opregion.c
+ */
+extern int psb_intel_opregion_init(struct drm_device *dev);
 
 /*
  *psb_fb.c
diff --git a/drivers/staging/mrst/drv/psb_intel_drv.h 
b/drivers/staging/mrst/drv/psb_intel_drv.h
index da575c7..9abe3fc 100644
--- a/drivers/staging/mrst/drv/psb_intel_drv.h
+++ b/drivers/staging/mrst/drv/psb_intel_drv.h
@@ -120,37 +120,6 @@ enum mipi_panel_type {
        TPO_864X480 = 3
 };
 
-struct opregion_header {
-       u8 signature[16];
-       u32 size;
-       u32 opregion_ver;
-       u8 bios_ver[32];
-       u8 vbios_ver[16];
-       u8 driver_ver[16];
-       u32 mboxes;
-       u8 reserved[164];
-} __attribute__((packed));
-
-struct opregion_apci {
-       /*FIXME: add it later*/
-} __attribute__((packed));
-
-struct opregion_swsci {
-       /*FIXME: add it later*/
-} __attribute__((packed));
-
-struct opregion_acpi {
-       /*FIXME: add it later*/
-} __attribute__((packed));
-
-struct psb_intel_opregion {
-       struct opregion_header *header;
-       struct opregion_acpi *acpi;
-       struct opregion_swsci *swsci;
-       struct opregion_asle *asle;
-       int enabled;
-};
-
 /**
  * Hold information useally put on the device driver privates here,
  * since it needs to be shared across multiple of devices drivers privates.
diff --git a/drivers/staging/mrst/drv/psb_intel_opregion.c 
b/drivers/staging/mrst/drv/psb_intel_opregion.c
new file mode 100644
index 0000000..65e3e9b
--- /dev/null
+++ b/drivers/staging/mrst/drv/psb_intel_opregion.c
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2010 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#include "psb_drv.h"
+
+struct opregion_header {
+       u8 signature[16];
+       u32 size;
+       u32 opregion_ver;
+       u8 bios_ver[32];
+       u8 vbios_ver[16];
+       u8 driver_ver[16];
+       u32 mboxes;
+       u8 reserved[164];
+} __attribute__((packed));
+
+struct opregion_apci {
+       /*FIXME: add it later*/
+} __attribute__((packed));
+
+struct opregion_swsci {
+       /*FIXME: add it later*/
+} __attribute__((packed));
+
+struct opregion_acpi {
+       /*FIXME: add it later*/
+} __attribute__((packed));
+
+int psb_intel_opregion_init(struct drm_device *dev)
+{
+       struct drm_psb_private *dev_priv = dev->dev_private;
+       /*struct psb_intel_opregion * opregion = &dev_priv->opregion;*/
+       u32 opregion_phy;
+       void *base;
+       u32 *lid_state;
+
+       dev_priv->lid_state = NULL;
+
+       pci_read_config_dword(dev->pdev, 0xfc, &opregion_phy);
+       if (opregion_phy == 0) {
+               DRM_DEBUG("Opregion not supported, won't support lid-switch\n");
+               return -ENOTSUPP;
+       }
+       DRM_DEBUG("OpRegion detected at 0x%8x\n", opregion_phy);
+
+       base = ioremap(opregion_phy, 8*1024);
+       if (!base)
+               return -ENOMEM;
+
+       lid_state = base + 0x01ac;
+
+       DRM_DEBUG("Lid switch state 0x%08x\n", *lid_state);
+
+       dev_priv->lid_state = lid_state;
+       dev_priv->lid_last_state = *lid_state;
+       return 0;
+}
diff --git a/drivers/staging/mrst/medfield/Makefile 
b/drivers/staging/mrst/medfield/Makefile
index e04562e..cbc5cbb 100644
--- a/drivers/staging/mrst/medfield/Makefile
+++ b/drivers/staging/mrst/medfield/Makefile
@@ -131,6 +131,7 @@ medfield_gfx-y += $(DRMDRVDIR)/psb_bl.medfield.o \
          $(DRMDRVDIR)/psb_gtt.medfield.o \
          $(DRMDRVDIR)/psb_hotplug.medfield.o \
          $(DRMDRVDIR)/psb_intel_bios.medfield.o \
+         $(DRMDRVDIR)/psb_intel_opregion.medfield.o \
          $(DRMDRVDIR)/psb_intel_display.medfield.o \
          $(DRMDRVDIR)/psb_intel_i2c.medfield.o \
          $(DRMDRVDIR)/psb_intel_lvds.medfield.o \
diff --git a/drivers/staging/mrst/moorestown/Makefile 
b/drivers/staging/mrst/moorestown/Makefile
index a3dad52..d5a2c92 100644
--- a/drivers/staging/mrst/moorestown/Makefile
+++ b/drivers/staging/mrst/moorestown/Makefile
@@ -131,6 +131,7 @@ mrst_gfx-y += $(DRMDRVDIR)/psb_bl.mrst.o \
          $(DRMDRVDIR)/psb_gtt.mrst.o \
          $(DRMDRVDIR)/psb_hotplug.mrst.o \
          $(DRMDRVDIR)/psb_intel_bios.mrst.o \
+         $(DRMDRVDIR)/psb_intel_opregion.mrst.o \
          $(DRMDRVDIR)/psb_intel_display.mrst.o \
          $(DRMDRVDIR)/psb_intel_i2c.mrst.o \
          $(DRMDRVDIR)/psb_intel_lvds.mrst.o \
-- 
1.7.1

_______________________________________________
MeeGo-kernel mailing list
[email protected]
http://lists.meego.com/listinfo/meego-kernel

Reply via email to