]> Pileus Git - ~andy/sunrise/commitdiff
sys-kernel/thinkpad-sources now lives in my dev overlay
authorMarkus Ullmann <jokey@gentoo.org>
Sat, 15 Dec 2007 16:10:01 +0000 (16:10 +0000)
committerMarkus Ullmann <jokey@gentoo.org>
Sat, 15 Dec 2007 16:10:01 +0000 (16:10 +0000)
svn path=/sunrise/; revision=5269

sys-kernel/thinkpad-sources/ChangeLog [deleted file]
sys-kernel/thinkpad-sources/Manifest [deleted file]
sys-kernel/thinkpad-sources/files/2.6.23/combined-2.6.23-cph.patch [deleted file]
sys-kernel/thinkpad-sources/files/2.6.23/disk-protect-for-2.6.23.patch [deleted file]
sys-kernel/thinkpad-sources/files/2.6.23/input-unknown_keycodes-for-2.6.23.patch [deleted file]
sys-kernel/thinkpad-sources/files/2.6.23/linux-phc-0.3.1-for-2.6.23.patch [deleted file]
sys-kernel/thinkpad-sources/files/configs/config-for-core-or-core2 [deleted file]
sys-kernel/thinkpad-sources/metadata.xml [deleted file]
sys-kernel/thinkpad-sources/thinkpad-sources-2.6.23-r1.ebuild [deleted file]

diff --git a/sys-kernel/thinkpad-sources/ChangeLog b/sys-kernel/thinkpad-sources/ChangeLog
deleted file mode 100644 (file)
index 280619e..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-# ChangeLog for sys-kernel/thinkpad-sources
-# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: $
-
-  09 Nov 2007; Jakub Moc <jakub@gentoo.org>
-  thinkpad-sources-2.6.23-r1.ebuild:
-  Add K_SECURITY_UNSUPPORTED
-
-  08 Nov 2007; Florian Manschwetus (EisNerd) <florianmanschwetus@gmx.de>
-  -files/config:
-  deleted files/config
-
-  08 Nov 2007; Florian Manschwetus (EisNerd) <florianmanschwetus@gmx.de>
-  +files/configs, +files/configs/config-for-core-or-core2:
-  made extra config dir in files
-
-  08 Nov 2007; Florian Manschwetus (EisNerd) <florianmanschwetus@gmx.de>
-  thinkpad-sources-2.6.23-r1.ebuild:
-  corrected the ebuild header
-
-  08 Nov 2007; Florian Manschwetus (EisNerd) <florianmanschwetus@gmx.de>
-  +files/2.6.23, +files/2.6.23/linux-phc-0.3.1-for-2.6.23.patch,
-  +thinkpad-sources-2.6.23-r1.ebuild,
-  +files/2.6.23/combined-2.6.23-cph.patch,
-  +files/2.6.23/disk-protect-for-2.6.23.patch,
-  +files/2.6.23/input-unknown_keycodes-for-2.6.23.patch, +files/config,
-  +metadata.xml:
-  New Ebuild for bug 136231 just test it on other centrinos
-
diff --git a/sys-kernel/thinkpad-sources/Manifest b/sys-kernel/thinkpad-sources/Manifest
deleted file mode 100644 (file)
index 2eba283..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-AUX 2.6.23/combined-2.6.23-cph.patch 19257 RMD160 18be73760b068e279319a73149a2321b01c9a1e6 SHA1 3b76e942e517799d88a1586d0334dbebdc09fccd SHA256 e89db0e631aae0890efa578b45120bacaf404ba235a6b1c268ba32472f6fa1e6
-AUX 2.6.23/disk-protect-for-2.6.23.patch 26537 RMD160 e9d1df866316d10ee7bc2d6967b9858173302de9 SHA1 8ff2eac2cfb635ac14ad742218e0b44224c2a42a SHA256 201d4bc70ebe1cd3d083f4c0d4702df7cc3c2c8f5d02335e2d5e5ba5d6a0af70
-AUX 2.6.23/input-unknown_keycodes-for-2.6.23.patch 367 RMD160 16564310a1007b173da528d71e358b5a73abf962 SHA1 2b1cc17a7b2b3bb87c53fdf5930bdc8ad2030302 SHA256 ab965750c853f193c248abe53bd73327a5aec608e092fbfa89c3aa06a2751122
-AUX 2.6.23/linux-phc-0.3.1-for-2.6.23.patch 15430 RMD160 7cc1ecb9168e255ffc366c2ea2dcbce081ec05c3 SHA1 b1bcedc872636588e3e078196d70dd8f41ade405 SHA256 862bb7eecfd02f71ab0a2b3f093f17a071b59d1c82184dbbeccfc744df543c70
-AUX configs/config-for-core-or-core2 47142 RMD160 78adf8841a9b88e7532da689eb512189df69241f SHA1 40e9afdbec772f86f6a731e44438641e2f7e283d SHA256 755fbbcf216b51754c18a53a04f052594a916326f5b3dec2017c613be060e6c9
-DIST genpatches-2.6.23-2.base.tar.bz2 6134 RMD160 b4d459e06a1a482fb4cfe51e8b693f9c95a6254b SHA1 b851ef449ec34d4331aba47774fe915cc2408e13 SHA256 fa6c34455470c4d57df1d51829a444343f7cbfca44d726843382baeec5ccbaec
-DIST genpatches-2.6.23-2.extras.tar.bz2 148061 RMD160 ea133cf3c10e061e3c979a8d12c31e320aa48873 SHA1 4c2318276573133374fb66bbd8f358af1ec1c32c SHA256 9fb3221a449cd8c078b327830111e1fb3af1f289e362c98718289d943834d0a9
-DIST linux-2.6.23.tar.bz2 45488158 RMD160 755690e80751d5de86d260fe05c6eeadde116c4e SHA1 3a186adf13e44415796ab6381aa8979b16a5d5ca SHA256 d4e67c0935ffb2a4158234bff92cc791b83177866009fc9b2214104e0038dbdb
-DIST patch-2.6.23-hrt3.patch.bz2 43556 RMD160 3234c8eeb3435e3db1690a2913a6c4daab867292 SHA1 d62cc99e3892af99a4f6b8f975e44846b69a5b51 SHA256 ac64d9423a14d78f9929c885fd499f2308fb2d14e96a37d3da16c35bcee40a59
-DIST sco-flowcontrol-v4.3.diff 14993 RMD160 aa6f41adbe8e6093b251731f107acd5ec6612bde SHA1 166135888810f7327c09ac5af20669ac7773467f SHA256 cacd624768bfd60c75843de625f16342f74e25dfe4a0794d79e1a6e14645c5d4
-DIST thinkpad-acpi-0.18-20071013_v2.6.23.1.patch.gz 16176 RMD160 67b55a21934c8d0b7305024a6a1996dec8da7000 SHA1 892aeacc3ca11830e2c5322d6d3b3d33e914b246 SHA256 b7cd7f1e12a6666d2c591c7fd9f7e81de4a93bdd3e4e6be04f56f05685e0d205
-DIST tuxonice-3.0-rc2-for-2.6.23.1.patch.bz2 104787 RMD160 c6483adbcfa54582f077781884a4d0a0ccf9b858 SHA1 7b2eba961f29d4cba129648a89789cfb11485221 SHA256 ef86267b6f3d7e309221f5173a881afae1dfa57418be5b3963f2380b0633ca1a
-EBUILD thinkpad-sources-2.6.23-r1.ebuild 2913 RMD160 860d53a15a5bdb1b62b46d74aef64cd32ba89ce9 SHA1 449336ed4397c7e16bc8c2b44ab0c5d6682a6e67 SHA256 3c49d24aefc9175decd022290cf7b6a8ae30a83d6ca2835c5ec2725da710dd67
-MISC ChangeLog 1076 RMD160 669cd3c276d991b8a14ed05812548583897574d0 SHA1 ce2b45218ecbb1ff52dfb570c3756d1555ba6b15 SHA256 2cea194a3b34ff502cb410049d646ab30dacdb457ad6f435abf1b11331b7f215
-MISC metadata.xml 284 RMD160 5062b08f804b7eaf9e1765c0d38b7fc95bc467e4 SHA1 687ba9103e597aad8a7231ff9a470d841f7121df SHA256 6ca83c8927bd3516baac49bc9ea82ddbeeddbe38a5a98b637d6eb1f1d436c84a
diff --git a/sys-kernel/thinkpad-sources/files/2.6.23/combined-2.6.23-cph.patch b/sys-kernel/thinkpad-sources/files/2.6.23/combined-2.6.23-cph.patch
deleted file mode 100644 (file)
index 28af1a6..0000000
+++ /dev/null
@@ -1,620 +0,0 @@
-diff -ruNp linux-2.6.23.orig/Documentation/scsi/link_power_management_policy.txt linux-2.6.23/Documentation/scsi/link_power_management_policy.txt
---- linux-2.6.23.orig/Documentation/scsi/link_power_management_policy.txt      1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.23/Documentation/scsi/link_power_management_policy.txt   2007-10-15 21:34:38.000000000 -0400
-@@ -0,0 +1,19 @@
-+This parameter allows the user to set the link (interface) power management.
-+There are 3 possible options:
-+
-+Value                 Effect
-+----------------------------------------------------------------------------
-+min_power             Tell the controller to try to make the link use the
-+                      least possible power when possible.  This may
-+                      sacrifice some performance due to increased latency
-+                      when coming out of lower power states.
-+
-+max_performance               Generally, this means no power management.  Tell
-+                      the controller to have performance be a priority
-+                      over power management.
-+
-+medium_power          Tell the controller to enter a lower power state
-+                      when possible, but do not enter the lowest power
-+                      state, thus improving latency over min_power setting.
-+
-+
-diff -ruNp linux-2.6.23.orig/drivers/ata/ahci.c linux-2.6.23/drivers/ata/ahci.c
---- linux-2.6.23.orig/drivers/ata/ahci.c       2007-10-09 16:31:38.000000000 -0400
-+++ linux-2.6.23/drivers/ata/ahci.c    2007-10-15 21:35:48.000000000 -0400
-@@ -48,6 +48,9 @@
- #define DRV_NAME      "ahci"
- #define DRV_VERSION   "2.3"
-+static int ahci_enable_alpm(struct ata_port *ap,
-+              enum link_pm policy);
-+static int ahci_disable_alpm(struct ata_port *ap);
- enum {
-       AHCI_PCI_BAR            = 5,
-@@ -98,6 +101,7 @@ enum {
-       /* HOST_CAP bits */
-       HOST_CAP_SSC            = (1 << 14), /* Slumber capable */
-       HOST_CAP_CLO            = (1 << 24), /* Command List Override support */
-+      HOST_CAP_ALPM           = (1 << 26), /* Aggressive Link PM support */
-       HOST_CAP_SSS            = (1 << 27), /* Staggered Spin-up */
-       HOST_CAP_SNTF           = (1 << 29), /* SNotification register */
-       HOST_CAP_NCQ            = (1 << 30), /* Native Command Queueing */
-@@ -153,6 +157,8 @@ enum {
-                                 PORT_IRQ_PIOS_FIS | PORT_IRQ_D2H_REG_FIS,
-       /* PORT_CMD bits */
-+      PORT_CMD_ASP            = (1 << 27), /* Aggressive Slumber/Partial */
-+      PORT_CMD_ALPE           = (1 << 26), /* Aggressive Link PM enable */
-       PORT_CMD_ATAPI          = (1 << 24), /* Device is ATAPI */
-       PORT_CMD_LIST_ON        = (1 << 15), /* cmd list DMA engine running */
-       PORT_CMD_FIS_ON         = (1 << 14), /* FIS DMA engine running */
-@@ -175,6 +181,7 @@ enum {
-       AHCI_FLAG_32BIT_ONLY            = (1 << 28), /* force 32bit */
-       AHCI_FLAG_MV_PATA               = (1 << 29), /* PATA port */
-       AHCI_FLAG_NO_MSI                = (1 << 30), /* no PCI MSI */
-+      AHCI_FLAG_NO_HOTPLUG            = (1 << 31), /* ignore PxSERR.DIAG.N */
-       AHCI_FLAG_COMMON                = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
-                                         ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA |
-@@ -215,6 +222,7 @@ struct ahci_port_priv {
-       unsigned int            ncq_saw_d2h:1;
-       unsigned int            ncq_saw_dmas:1;
-       unsigned int            ncq_saw_sdb:1;
-+      u32                     intr_mask;      /* interrupts to enable */
- };
- static int ahci_scr_read(struct ata_port *ap, unsigned int sc_reg, u32 *val);
-@@ -242,6 +250,11 @@ static int ahci_pci_device_suspend(struc
- static int ahci_pci_device_resume(struct pci_dev *pdev);
- #endif
-+static struct class_device_attribute *ahci_shost_attrs[] = {
-+      &class_device_attr_link_power_management_policy,
-+      NULL
-+};
-+
- static struct scsi_host_template ahci_sht = {
-       .module                 = THIS_MODULE,
-       .name                   = DRV_NAME,
-@@ -259,6 +272,7 @@ static struct scsi_host_template ahci_sh
-       .slave_configure        = ata_scsi_slave_config,
-       .slave_destroy          = ata_scsi_slave_destroy,
-       .bios_param             = ata_std_bios_param,
-+      .shost_attrs            = ahci_shost_attrs,
- };
- static const struct ata_port_operations ahci_ops = {
-@@ -290,6 +304,8 @@ static const struct ata_port_operations 
-       .port_suspend           = ahci_port_suspend,
-       .port_resume            = ahci_port_resume,
- #endif
-+      .enable_pm              = ahci_enable_alpm,
-+      .disable_pm             = ahci_disable_alpm,
-       .port_start             = ahci_port_start,
-       .port_stop              = ahci_port_stop,
-@@ -778,6 +794,156 @@ static void ahci_power_up(struct ata_por
-       writel(cmd | PORT_CMD_ICC_ACTIVE, port_mmio + PORT_CMD);
- }
-+static int ahci_disable_alpm(struct ata_port *ap)
-+{
-+      void __iomem *port_mmio = ahci_port_base(ap);
-+      u32 cmd, scontrol;
-+      struct ahci_port_priv *pp = ap->private_data;
-+
-+      /*
-+       * disable Interface Power Management State Transitions
-+       * This is accomplished by setting bits 8:11 of the
-+       * SATA Control register
-+       */
-+      scontrol = readl(port_mmio + PORT_SCR_CTL);
-+      scontrol |= (0x3 << 8);
-+      writel(scontrol, port_mmio + PORT_SCR_CTL);
-+
-+      /* get the existing command bits */
-+      cmd = readl(port_mmio + PORT_CMD);
-+
-+      /* disable ALPM and ASP */
-+      cmd &= ~PORT_CMD_ASP;
-+      cmd &= ~PORT_CMD_ALPE;
-+
-+      /* force the interface back to active */
-+      cmd |= PORT_CMD_ICC_ACTIVE;
-+
-+      /* write out new cmd value */
-+      writel(cmd, port_mmio + PORT_CMD);
-+      cmd = readl(port_mmio + PORT_CMD);
-+
-+      /* wait 10ms to be sure we've come out of any low power state */
-+      msleep(10);
-+
-+      /* clear out any PhyRdy stuff from interrupt status */
-+      writel(PORT_IRQ_PHYRDY, port_mmio + PORT_IRQ_STAT);
-+
-+      /* go ahead and clean out PhyRdy Change from Serror too */
-+      ahci_scr_write(ap, SCR_ERROR, ((1 << 16) | (1 << 18)));
-+
-+      /*
-+       * Clear flag to indicate that we should ignore all PhyRdy
-+       * state changes
-+       */
-+      ap->flags &= ~AHCI_FLAG_NO_HOTPLUG;
-+
-+      /*
-+       * Enable interrupts on Phy Ready.
-+       */
-+      pp->intr_mask |= PORT_IRQ_PHYRDY;
-+      writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK);
-+
-+      /*
-+       * don't change the link pm policy - we can be called
-+       * just to turn of link pm temporarily
-+       */
-+      return 0;
-+}
-+
-+static int ahci_enable_alpm(struct ata_port *ap,
-+      enum link_pm policy)
-+{
-+      struct ahci_host_priv *hpriv = ap->host->private_data;
-+      void __iomem *port_mmio = ahci_port_base(ap);
-+      u32 cmd, scontrol, sstatus;
-+      struct ahci_port_priv *pp = ap->private_data;
-+      u32 asp;
-+
-+      /* Make sure the host is capable of link power management */
-+      if (!(hpriv->cap & HOST_CAP_ALPM)) {
-+              ap->pm_policy = NOT_AVAILABLE;
-+              return -EINVAL;
-+      }
-+
-+      /* make sure we have a device attached */
-+      sstatus = readl(port_mmio + PORT_SCR_STAT);
-+      if (!(sstatus & 0xf00)) {
-+              ap->pm_policy = NOT_AVAILABLE;
-+              return -EINVAL;
-+      }
-+
-+      switch (policy) {
-+      case MAX_PERFORMANCE:
-+      case NOT_AVAILABLE:
-+              /*
-+               * if we came here with NOT_AVAILABLE,
-+               * it just means this is the first time we
-+               * have tried to enable - default to max performance,
-+               * and let the user go to lower power modes on request.
-+               */
-+              ahci_disable_alpm(ap);
-+              ap->pm_policy = MAX_PERFORMANCE;
-+              return 0;
-+      case MIN_POWER:
-+              /* configure HBA to enter SLUMBER */
-+              asp = PORT_CMD_ASP;
-+              break;
-+      case MEDIUM_POWER:
-+              /* configure HBA to enter PARTIAL */
-+              asp = 0;
-+              break;
-+      default:
-+              return -EINVAL;
-+      }
-+      ap->pm_policy = policy;
-+
-+      /*
-+       * Disable interrupts on Phy Ready. This keeps us from
-+       * getting woken up due to spurious phy ready interrupts
-+       * TBD - Hot plug should be done via polling now, is
-+       * that even supported?
-+       */
-+      pp->intr_mask &= ~PORT_IRQ_PHYRDY;
-+      writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK);
-+
-+      /*
-+       * Set a flag to indicate that we should ignore all PhyRdy
-+       * state changes since these can happen now whenever we
-+       * change link state
-+       */
-+      ap->flags |= AHCI_FLAG_NO_HOTPLUG;
-+
-+      /* get the existing command bits */
-+      cmd = readl(port_mmio + PORT_CMD);
-+
-+      /*
-+       * enable Interface Power Management State Transitions
-+       * This is accomplished by clearing bits 8:11 of the
-+       * SATA Control register
-+       */
-+      scontrol = readl(port_mmio + PORT_SCR_CTL);
-+      scontrol &= ~(0x3 << 8);
-+      writel(scontrol, port_mmio + PORT_SCR_CTL);
-+
-+      /*
-+       * Set ASP based on Policy
-+       */
-+      cmd |= asp;
-+
-+      /*
-+       * Setting this bit will instruct the HBA to aggressively
-+       * enter a lower power link state when it's appropriate and
-+       * based on the value set above for ASP
-+       */
-+      cmd |= PORT_CMD_ALPE;
-+
-+      /* write out new cmd value */
-+      writel(cmd, port_mmio + PORT_CMD);
-+      cmd = readl(port_mmio + PORT_CMD);
-+      return 0;
-+}
-+
- #ifdef CONFIG_PM
- static void ahci_power_down(struct ata_port *ap)
- {
-@@ -1355,6 +1521,17 @@ static void ahci_port_intr(struct ata_po
-       status = readl(port_mmio + PORT_IRQ_STAT);
-       writel(status, port_mmio + PORT_IRQ_STAT);
-+      /* If we are getting PhyRdy, this is
-+       * just a power state change, we should
-+       * clear out this, plus the PhyRdy/Comm
-+       * Wake bits from Serror
-+       */
-+      if ((ap->flags & AHCI_FLAG_NO_HOTPLUG) &&
-+              (status & PORT_IRQ_PHYRDY)) {
-+              status &= ~PORT_IRQ_PHYRDY;
-+              ahci_scr_write(ap, SCR_ERROR, ((1 << 16) | (1 << 18)));
-+      }
-+
-       if (unlikely(status & PORT_IRQ_ERROR)) {
-               ahci_error_intr(ap, status);
-               return;
-@@ -1520,6 +1697,7 @@ static void ahci_thaw(struct ata_port *a
-       void __iomem *mmio = ap->host->iomap[AHCI_PCI_BAR];
-       void __iomem *port_mmio = ahci_port_base(ap);
-       u32 tmp;
-+      struct ahci_port_priv *pp = ap->private_data;
-       /* clear IRQ */
-       tmp = readl(port_mmio + PORT_IRQ_STAT);
-@@ -1527,7 +1705,7 @@ static void ahci_thaw(struct ata_port *a
-       writel(1 << ap->port_no, mmio + HOST_IRQ_STAT);
-       /* turn IRQ back on */
--      writel(DEF_PORT_IRQ, port_mmio + PORT_IRQ_MASK);
-+      writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK);
- }
- static void ahci_error_handler(struct ata_port *ap)
-@@ -1681,6 +1859,12 @@ static int ahci_port_start(struct ata_po
-       pp->cmd_tbl = mem;
-       pp->cmd_tbl_dma = mem_dma;
-+      /*
-+       * Save off initial list of interrupts to be enabled.
-+       * This could be changed later
-+       */
-+      pp->intr_mask = DEF_PORT_IRQ;
-+
-       ap->private_data = pp;
-       /* engage engines, captain */
-@@ -1854,6 +2038,9 @@ static int ahci_init_one(struct pci_dev 
-               struct ata_port *ap = host->ports[i];
-               void __iomem *port_mmio = ahci_port_base(ap);
-+              /* set initial link pm policy */
-+              ap->pm_policy = NOT_AVAILABLE;
-+
-               /* standard SATA port setup */
-               if (hpriv->port_map & (1 << i))
-                       ap->ioaddr.cmd_addr = port_mmio;
-diff -ruNp linux-2.6.23.orig/drivers/ata/libata-core.c linux-2.6.23/drivers/ata/libata-core.c
---- linux-2.6.23.orig/drivers/ata/libata-core.c        2007-10-09 16:31:38.000000000 -0400
-+++ linux-2.6.23/drivers/ata/libata-core.c     2007-10-15 21:34:39.000000000 -0400
-@@ -1994,6 +1994,9 @@ int ata_dev_configure(struct ata_device 
-       if (dev->flags & ATA_DFLAG_LBA48)
-               dev->max_sectors = ATA_MAX_SECTORS_LBA48;
-+      if (ata_id_has_hipm(dev->id) || ata_id_has_dipm(dev->id))
-+              dev->flags |= ATA_DFLAG_IPM;
-+
-       if (dev->horkage & ATA_HORKAGE_DIAGNOSTIC) {
-               /* Let the user know. We don't want to disallow opens for
-                  rescue purposes, or in case the vendor is just a blithering
-@@ -2019,6 +2022,13 @@ int ata_dev_configure(struct ata_device 
-               dev->max_sectors = min_t(unsigned int, ATA_MAX_SECTORS_128,
-                                        dev->max_sectors);
-+      if (ata_dev_blacklisted(dev) & ATA_HORKAGE_IPM) {
-+              dev->horkage |= ATA_HORKAGE_IPM;
-+
-+              /* reset link pm_policy for this port to no pm */
-+              ap->pm_policy = MAX_PERFORMANCE;
-+      }
-+
-       if (ap->ops->dev_config)
-               ap->ops->dev_config(dev);
-@@ -5892,6 +5902,27 @@ int ata_flush_cache(struct ata_device *d
-       return 0;
- }
-+static void ata_host_disable_link_pm(struct ata_host *host)
-+{
-+      int i;
-+
-+      for (i = 0; i < host->n_ports; i++) {
-+              struct ata_port *ap = host->ports[i];
-+              if (ap->ops->disable_pm)
-+                      ap->ops->disable_pm(ap);
-+      }
-+}
-+
-+static void ata_host_enable_link_pm(struct ata_host *host)
-+{
-+      int i;
-+
-+      for (i = 0; i < host->n_ports; i++) {
-+              struct ata_port *ap = host->ports[i];
-+              ata_scsi_set_link_pm_policy(ap, ap->pm_policy);
-+      }
-+}
-+
- #ifdef CONFIG_PM
- static int ata_host_request_pm(struct ata_host *host, pm_message_t mesg,
-                              unsigned int action, unsigned int ehi_flags,
-@@ -5959,6 +5990,12 @@ int ata_host_suspend(struct ata_host *ho
- {
-       int rc;
-+      /*
-+       * disable link pm on all ports before requesting
-+       * any pm activity
-+       */
-+      ata_host_disable_link_pm(host);
-+
-       rc = ata_host_request_pm(host, mesg, 0, ATA_EHI_QUIET, 1);
-       if (rc == 0)
-               host->dev->power.power_state = mesg;
-@@ -5981,6 +6018,9 @@ void ata_host_resume(struct ata_host *ho
-       ata_host_request_pm(host, PMSG_ON, ATA_EH_SOFTRESET,
-                           ATA_EHI_NO_AUTOPSY | ATA_EHI_QUIET, 0);
-       host->dev->power.power_state = PMSG_ON;
-+
-+      /* reenable link pm */
-+      ata_host_enable_link_pm(host);
- }
- #endif
-@@ -6478,6 +6518,7 @@ int ata_host_register(struct ata_host *h
-               struct ata_port *ap = host->ports[i];
-               ata_scsi_scan_host(ap, 1);
-+              ata_scsi_set_link_pm_policy(ap, ap->pm_policy);
-       }
-       return 0;
-diff -ruNp linux-2.6.23.orig/drivers/ata/libata-scsi.c linux-2.6.23/drivers/ata/libata-scsi.c
---- linux-2.6.23.orig/drivers/ata/libata-scsi.c        2007-10-09 16:31:38.000000000 -0400
-+++ linux-2.6.23/drivers/ata/libata-scsi.c     2007-10-15 21:34:39.000000000 -0400
-@@ -111,6 +111,78 @@ static struct scsi_transport_template at
- };
-+static const struct {
-+      enum link_pm    value;
-+      char            *name;
-+} link_pm_policy[] = {
-+      { NOT_AVAILABLE, "max_performance" },
-+      { MIN_POWER, "min_power" },
-+      { MAX_PERFORMANCE, "max_performance" },
-+      { MEDIUM_POWER, "medium_power" },
-+};
-+
-+const char *ata_scsi_link_pm_policy(enum link_pm policy)
-+{
-+      int i;
-+      char *name = NULL;
-+
-+      for (i = 0; i < ARRAY_SIZE(link_pm_policy); i++) {
-+              if (link_pm_policy[i].value == policy) {
-+                      name = link_pm_policy[i].name;
-+                      break;
-+              }
-+      }
-+      return name;
-+}
-+
-+static ssize_t store_link_pm_policy(struct class_device *class_dev,
-+      const char *buf, size_t count)
-+{
-+      struct Scsi_Host *shost = class_to_shost(class_dev);
-+      struct ata_port *ap = ata_shost_to_port(shost);
-+      enum link_pm policy = 0;
-+      int i;
-+
-+      /*
-+       * we are skipping array location 0 on purpose - this
-+       * is because a value of NOT_AVAILABLE is displayed
-+       * to the user as max_performance, but when the user
-+       * writes "max_performance", they actually want the
-+       * value to match MAX_PERFORMANCE.
-+       */
-+      for (i = 1; i < ARRAY_SIZE(link_pm_policy); i++) {
-+              const int len = strlen(link_pm_policy[i].name);
-+              if (strncmp(link_pm_policy[i].name, buf, len) == 0 &&
-+                 buf[len] == '\n') {
-+                      policy = link_pm_policy[i].value;
-+                      break;
-+              }
-+      }
-+      if (!policy)
-+              return -EINVAL;
-+
-+      if (ata_scsi_set_link_pm_policy(ap, policy))
-+              return -EINVAL;
-+      return count;
-+}
-+
-+static ssize_t
-+show_link_pm_policy(struct class_device *class_dev, char *buf)
-+{
-+      struct Scsi_Host *shost = class_to_shost(class_dev);
-+      struct ata_port *ap = ata_shost_to_port(shost);
-+      const char *policy =
-+              ata_scsi_link_pm_policy(ap->pm_policy);
-+
-+      if (!policy)
-+              return -EINVAL;
-+
-+      return snprintf(buf, 23, "%s\n", policy);
-+}
-+CLASS_DEVICE_ATTR(link_power_management_policy, S_IRUGO | S_IWUSR,
-+              show_link_pm_policy, store_link_pm_policy);
-+EXPORT_SYMBOL_GPL(class_device_attr_link_power_management_policy);
-+
- static void ata_scsi_invalid_field(struct scsi_cmnd *cmd,
-                                  void (*done)(struct scsi_cmnd *))
- {
-@@ -2905,6 +2977,47 @@ void ata_scsi_simulate(struct ata_device
-       }
- }
-+int ata_scsi_set_link_pm_policy(struct ata_port *ap,
-+              enum link_pm policy)
-+{
-+      int rc = -EINVAL;
-+      int i;
-+
-+      /*
-+       * make sure no broken devices are on this port,
-+       * and that all devices support interface power
-+       * management
-+       */
-+      for (i = 0; i < ATA_MAX_DEVICES; i++) {
-+              struct ata_device *dev = &ap->device[i];
-+
-+              /* only check drives which exist */
-+              if (!ata_dev_enabled(dev))
-+                      continue;
-+
-+              /*
-+               * do we need to handle the case where we've hotplugged
-+               * a broken drive (since hotplug and ALPM are mutually
-+               * exclusive) ?
-+               *
-+               * If so, if we detect a broken drive on a port with
-+               * alpm already enabled, then we should reset the policy
-+               * to off for the entire port.
-+               */
-+              if ((dev->horkage & ATA_HORKAGE_IPM) ||
-+                      !(dev->flags & ATA_DFLAG_IPM)) {
-+                      ata_dev_printk(dev, KERN_ERR,
-+                              "Unable to set Link PM policy\n");
-+                      ap->pm_policy = MAX_PERFORMANCE;
-+              }
-+      }
-+
-+      if (ap->ops->enable_pm)
-+              rc = ap->ops->enable_pm(ap, policy);
-+      return rc;
-+}
-+EXPORT_SYMBOL_GPL(ata_scsi_set_link_pm_policy);
-+
- int ata_scsi_add_hosts(struct ata_host *host, struct scsi_host_template *sht)
- {
-       int i, rc;
-diff -ruNp linux-2.6.23.orig/include/linux/ata.h linux-2.6.23/include/linux/ata.h
---- linux-2.6.23.orig/include/linux/ata.h      2007-10-09 16:31:38.000000000 -0400
-+++ linux-2.6.23/include/linux/ata.h   2007-10-15 21:34:39.000000000 -0400
-@@ -368,6 +368,12 @@ struct ata_taskfile {
-         ((u64) (id)[(n) + 0]) )
- #define ata_id_cdb_intr(id)   (((id)[0] & 0x60) == 0x20)
-+#define ata_id_has_hipm(id)   \
-+      ( (((id)[76] != 0x0000) && ((id)[76] != 0xffff)) && \
-+        ((id)[76] & (1 << 9)) )
-+#define ata_id_has_dipm(id)   \
-+      ( (((id)[76] != 0x0000) && ((id)[76] != 0xffff)) && \
-+        ((id)[78] & (1 << 3)) )
- static inline unsigned int ata_id_major_version(const u16 *id)
- {
-diff -ruNp linux-2.6.23.orig/include/linux/libata.h linux-2.6.23/include/linux/libata.h
---- linux-2.6.23.orig/include/linux/libata.h   2007-10-09 16:31:38.000000000 -0400
-+++ linux-2.6.23/include/linux/libata.h        2007-10-15 21:35:14.000000000 -0400
-@@ -139,7 +139,8 @@ enum {
-       ATA_DFLAG_FLUSH_EXT     = (1 << 4), /* do FLUSH_EXT instead of FLUSH */
-       ATA_DFLAG_ACPI_PENDING  = (1 << 5), /* ACPI resume action pending */
-       ATA_DFLAG_ACPI_FAILED   = (1 << 6), /* ACPI on devcfg has failed */
--      ATA_DFLAG_CFG_MASK      = (1 << 8) - 1,
-+      ATA_DFLAG_IPM           = (1 << 7), /* device supports IPM */
-+      ATA_DFLAG_CFG_MASK      = (1 << 12) - 1,
-       ATA_DFLAG_PIO           = (1 << 8), /* device limited to PIO mode */
-       ATA_DFLAG_NCQ_OFF       = (1 << 9), /* device limited to non-NCQ mode */
-@@ -304,6 +305,7 @@ enum {
-       ATA_HORKAGE_NONCQ       = (1 << 2),     /* Don't use NCQ */
-       ATA_HORKAGE_MAX_SEC_128 = (1 << 3),     /* Limit max sects to 128 */
-       ATA_HORKAGE_BROKEN_HPA  = (1 << 4),     /* Broken HPA */
-+      ATA_HORKAGE_IPM         = (1 << 5),     /* LPM problems */
- };
- enum hsm_task_states {
-@@ -342,6 +344,18 @@ typedef int (*ata_reset_fn_t)(struct ata
-                             unsigned long deadline);
- typedef void (*ata_postreset_fn_t)(struct ata_port *ap, unsigned int *classes);
-+/*
-+ * host pm policy: If you alter this, you also need to alter scsi_sysfs.c
-+ * (for the ascii descriptions)
-+ */
-+enum link_pm {
-+      NOT_AVAILABLE,
-+      MIN_POWER,
-+      MAX_PERFORMANCE,
-+      MEDIUM_POWER,
-+};
-+extern struct class_device_attribute class_device_attr_link_power_management_policy;
-+
- struct ata_ioports {
-       void __iomem            *cmd_addr;
-       void __iomem            *data_addr;
-@@ -568,6 +582,7 @@ struct ata_port {
-       pm_message_t            pm_mesg;
-       int                     *pm_result;
-+      enum link_pm            pm_policy;
-       struct timer_list       fastdrain_timer;
-       unsigned long           fastdrain_cnt;
-@@ -633,7 +648,8 @@ struct ata_port_operations {
-       int (*port_suspend) (struct ata_port *ap, pm_message_t mesg);
-       int (*port_resume) (struct ata_port *ap);
--
-+      int (*enable_pm) (struct ata_port *ap, enum link_pm policy);
-+      int (*disable_pm) (struct ata_port *ap);
-       int (*port_start) (struct ata_port *ap);
-       void (*port_stop) (struct ata_port *ap);
-@@ -840,7 +856,7 @@ extern int ata_cable_40wire(struct ata_p
- extern int ata_cable_80wire(struct ata_port *ap);
- extern int ata_cable_sata(struct ata_port *ap);
- extern int ata_cable_unknown(struct ata_port *ap);
--
-+extern int ata_scsi_set_link_pm_policy(struct ata_port *ap, enum link_pm);
- /*
-  * Timing helpers
-  */
-@@ -869,7 +885,6 @@ enum {
-                                 ATA_TIMING_CYCLE | ATA_TIMING_UDMA,
- };
--
- #ifdef CONFIG_PCI
- struct pci_bits {
-       unsigned int            reg;    /* PCI config register to read */
diff --git a/sys-kernel/thinkpad-sources/files/2.6.23/disk-protect-for-2.6.23.patch b/sys-kernel/thinkpad-sources/files/2.6.23/disk-protect-for-2.6.23.patch
deleted file mode 100644 (file)
index d9d5385..0000000
+++ /dev/null
@@ -1,850 +0,0 @@
-diff --git a/Documentation/block/disk-protection.txt b/Documentation/block/disk-protection.txt
-new file mode 100644
-index 0000000..508cc5b
---- /dev/null
-+++ b/Documentation/block/disk-protection.txt
-@@ -0,0 +1,79 @@
-+Hard disk protection
-+====================
-+
-+
-+Intro
-+-----
-+ATA/ATAPI-7 specifies the IDLE IMMEDIATE command with UNLOAD FEATURE.
-+Issuing this command should cause the drive to switch to idle mode and
-+unload disk heads. This feature is being used in modern laptops in
-+conjunction with accelerometers and appropriate software to implement
-+a shock protection facility. The idea is to stop all I/O operations on
-+the internal hard drive and park its heads on the ramp when critical
-+situations are anticipated. The desire to have such a feature
-+available on GNU/Linux systems has been the original motivation to
-+implement a generic disk parking interface in the Linux kernel.
-+
-+
-+The interface
-+-------------
-+The interface works as follows: Writing an integer value to
-+/sys/block/*/queue/protect will park the respective drive and freeze
-+the block layer queue for the specified number of seconds. When the
-+timeout expires and no further disk park request has been issued in
-+the meantime, the queue is unfrozen and accumulated I/O operations are
-+performed.
-+
-+IMPORTANT NOTE:
-+Not all ATA drives implement IDLE IMMEDIATE with UNLOAD FEATURE and
-+quite a few of those that do so, don't report this capability as
-+described in the specs. When a disk park has been requested through
-+sysfs as described above, the kernel will try to determine if the
-+drive supports the UNLOAD FEATURE by default. The kernel will only
-+rely on the IDLE IMMEDIATE with UNLOAD FEATURE command if it is
-+convinced that this command is actually supported by the disk drive;
-+otherwise, it will fall back to STANDBY IMMEDIATE. Resuming from the
-+latter will take much longer and it is generally more likely to have a
-+negative impact on the drive's lifetime due to the inclease of spin
-+down and up cycles. If you want to use this interface in a shock
-+protection framework and you know that your drive does indeed support
-+the IDLE IMMEDIATE with UNLOAD FEATURE command despite not saying so,
-+you can force the kernel to issue that command by doing the following
-+on the command line:
-+# echo -n unload > /sys/block/sda/queue/protect_method
-+(replace sda by the drive identifier as appropriate).
-+
-+/sys/block/*/queue/protect_method accepts auto, unload and standby
-+respectively. Reading from protect_method shows the available options
-+surrounding the active one with brackets. When auto is active, this
-+will change to whatever the kernel sees fit after the next disk park
-+command has been issued.
-+
-+
-+References
-+----------
-+
-+There are several laptops from different brands featuring shock
-+protection capabilities. As manufacturers have refused to support open
-+source development of the required software components so far, Linux
-+support for shock protection varies considerably between different
-+hardware implementations. Ideally, this section should contain a list
-+of poiters at different projects aiming at an implementation of shock
-+protection on different systeems. Unfortunately, I only know of a
-+single project which, although still considered experimental, is fit
-+for use. Please feel free to add projects that have been the victims
-+of my ignorance.
-+
-+- http://www.thinkwiki.org/wiki/HDAPS
-+  See this page for information about Linux support of the hard disk
-+  active protection syystem as implemented in IBM/Lenovo Thinkpads.
-+
-+
-+CREDITS
-+-------
-+
-+The patch to implement the interface described in this file has
-+originally been published by Jon Escombe <lists-Xbpc2PeERmvQXOPxS62xeg@public.gmane.org>.
-+
-+
-+05 Dec 2006, Elias Oltmanns <eo-oA28OIkTjSVZXbeN9DUtxg@public.gmane.org>
-diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c
-index ed39313..cc0e227 100644
---- a/block/ll_rw_blk.c
-+++ b/block/ll_rw_blk.c
-@@ -38,10 +38,14 @@ #include <scsi/scsi_cmnd.h>
- static void blk_unplug_work(struct work_struct *work);
- static void blk_unplug_timeout(unsigned long data);
-+static void blk_unfreeze_work(struct work_struct *work);
-+static void blk_unfreeze_timeout(unsigned long data);
- static void drive_stat_acct(struct request *rq, int nr_sectors, int new_io);
- static void init_request_from_bio(struct request *req, struct bio *bio);
- static int __make_request(struct request_queue *q, struct bio *bio);
- static struct io_context *current_io_context(gfp_t gfp_flags, int node);
-+static int blk_protect_register(struct request_queue *q);
-+static void blk_protect_unregister(struct request_queue *q);
- /*
-  * For the allocated request tables
-@@ -227,6 +231,16 @@ void blk_queue_make_request(struct reque
-       q->unplug_timer.function = blk_unplug_timeout;
-       q->unplug_timer.data = (unsigned long)q;
-+      q->max_unfreeze = 30;
-+
-+      INIT_WORK(&q->unfreeze_work, blk_unfreeze_work);
-+
-+      q->unfreeze_timer.function = blk_unfreeze_timeout;
-+      q->unfreeze_timer.data = (unsigned long)q;
-+
-+      /* Set protect_method to auto detection initially */
-+      q->protect_method = 2;
-+
-       /*
-        * by default assume old behaviour and bounce for any highmem page
-        */
-@@ -318,6 +332,18 @@ void blk_queue_issue_flush_fn(struct req
- EXPORT_SYMBOL(blk_queue_issue_flush_fn);
-+void blk_queue_issue_protect_fn(struct request_queue *q, issue_protect_fn *ipf)
-+{
-+      q->issue_protect_fn = ipf;
-+}
-+EXPORT_SYMBOL(blk_queue_issue_protect_fn);
-+
-+void blk_queue_issue_unprotect_fn(struct request_queue *q, issue_unprotect_fn *iuf)
-+{
-+      q->issue_unprotect_fn = iuf;
-+}
-+EXPORT_SYMBOL(blk_queue_issue_unprotect_fn);
-+
- /*
-  * Cache flushing for ordered writes handling
-  */
-@@ -1851,6 +1877,7 @@ struct request_queue *blk_alloc_queue_no
-               return NULL;
-       init_timer(&q->unplug_timer);
-+      init_timer(&q->unfreeze_timer);
-       snprintf(q->kobj.name, KOBJ_NAME_LEN, "%s", "queue");
-       q->kobj.ktype = &queue_ktype;
-@@ -4116,6 +4143,7 @@ int blk_register_queue(struct gendisk *d
-               return ret;
-       }
-+      blk_protect_register(q);
-       return 0;
- }
-@@ -4124,6 +4152,7 @@ void blk_unregister_queue(struct gendisk
-       struct request_queue *q = disk->queue;
-       if (q && q->request_fn) {
-+              blk_protect_unregister(q);
-               elv_unregister_queue(q);
-               kobject_uevent(&q->kobj, KOBJ_REMOVE);
-@@ -4131,3 +4160,198 @@ void blk_unregister_queue(struct gendisk
-               kobject_put(&disk->kobj);
-       }
- }
-+
-+/*
-+ * Issue lower level unprotect function if no timers are pending.
-+ */
-+static void blk_unfreeze_work(struct work_struct *work)
-+{
-+      struct request_queue *q = container_of(work, struct request_queue, unfreeze_work);
-+      int pending;
-+      unsigned long flags;
-+
-+      spin_lock_irqsave(q->queue_lock, flags);
-+      pending = timer_pending(&q->unfreeze_timer);
-+      spin_unlock_irqrestore(q->queue_lock, flags);
-+      if (!pending)
-+              q->issue_unprotect_fn(q);
-+}
-+
-+/*
-+ * Called when the queue freeze timeout expires...
-+ */
-+static void blk_unfreeze_timeout(unsigned long data)
-+{
-+      struct request_queue *q = (struct request_queue *) data;
-+
-+      kblockd_schedule_work(&q->unfreeze_work);
-+}
-+
-+/*
-+ * The lower level driver parks and freezes the queue, and this block layer
-+ *  function sets up the freeze timeout timer on return. If the queue is
-+ *  already frozen then this is called to extend the timer...
-+ */
-+void blk_freeze_queue(struct request_queue *q, int seconds)
-+{
-+      /* Don't accept arbitrarily long freezes */
-+      if (seconds >= q->max_unfreeze)
-+              seconds = q->max_unfreeze;
-+      /* set/reset the timer */
-+      mod_timer(&q->unfreeze_timer, msecs_to_jiffies(seconds*1000) + jiffies);
-+}
-+
-+/*
-+ * When reading the 'protect' attribute, we return seconds remaining
-+ * before unfreeze timeout expires
-+ */
-+static ssize_t queue_protect_show(struct request_queue *q, char *page)
-+{
-+      unsigned int seconds = 0;
-+
-+      spin_lock_irq(q->queue_lock);
-+      if (blk_queue_stopped(q) && timer_pending(&q->unfreeze_timer))
-+              /*
-+               * Adding 1 in order to guarantee nonzero value until timer
-+               * has actually expired.
-+               */
-+              seconds = jiffies_to_msecs(q->unfreeze_timer.expires
-+                                         - jiffies) / 1000 + 1;
-+      spin_unlock_irq(q->queue_lock);
-+      return queue_var_show(seconds, (page));
-+}
-+
-+/*
-+ * When writing the 'protect' attribute, input is the number of seconds
-+ * to freeze the queue for. We call a lower level helper function to
-+ * park the heads and freeze/block the queue, then we make a block layer
-+ * call to setup the thaw timeout. If input is 0, then we thaw the queue.
-+ */
-+static ssize_t queue_protect_store(struct request_queue *q,
-+                                 const char *page, size_t count)
-+{
-+      unsigned long freeze = 0;
-+
-+      queue_var_store(&freeze, page, count);
-+
-+      if (freeze>0) {
-+              /* Park and freeze */
-+              if (!blk_queue_stopped(q))
-+                      q->issue_protect_fn(q);
-+              /* set / reset the thaw timer */
-+              spin_lock_irq(q->queue_lock);
-+              blk_freeze_queue(q, freeze);
-+              spin_unlock_irq(q->queue_lock);
-+      } else {
-+              spin_lock_irq(q->queue_lock);
-+              freeze = del_timer(&q->unfreeze_timer);
-+              spin_unlock_irq(q->queue_lock);
-+              if (freeze)
-+                      q->issue_unprotect_fn(q);
-+      }
-+
-+      return count;
-+}
-+
-+static ssize_t
-+queue_str_show(char *page, char *str, int status)
-+{
-+      ssize_t len;
-+
-+      if (status & 1)
-+              len = sprintf(page, "[%s]", str);
-+      else
-+              len = sprintf(page, "%s", str);
-+      if (status & 2)
-+              len += sprintf(page+len, "\n");
-+      else
-+              len += sprintf(page+len, " ");
-+      return len;
-+}
-+
-+/*
-+ * Returns current protect_method.
-+ */
-+static ssize_t queue_protect_method_show(struct request_queue *q, char *page)
-+{
-+      int len = 0;
-+      int unload = q->protect_method;
-+
-+      len += queue_str_show(page+len, "auto", (unload & 2) >> 1);
-+      len += queue_str_show(page+len, "unload", unload & 1);
-+      len += queue_str_show(page+len, "standby", !unload ? 3 : 2);
-+      return len;
-+}
-+
-+/*
-+ * Stores the device protect method.
-+ */
-+static ssize_t queue_protect_method_store(struct request_queue *q,
-+                                 const char *page, size_t count)
-+{
-+      spin_lock_irq(q->queue_lock);
-+      if (!strcmp(page, "auto") || !strcmp(page, "auto\n"))
-+              q->protect_method = 2;
-+      else if (!strcmp(page, "unload") || !strcmp(page, "unload\n"))
-+              q->protect_method = 1;
-+      else if (!strcmp(page, "standby") || !strcmp(page, "standby\n"))
-+              q->protect_method = 0;
-+      else {
-+              spin_unlock_irq(q->queue_lock);
-+              return -EINVAL;
-+      }
-+      spin_unlock_irq(q->queue_lock);
-+      return count;
-+}
-+
-+static struct queue_sysfs_entry queue_protect_entry = {
-+      .attr = { .name = "protect", .mode = S_IRUGO | S_IWUSR },
-+      .show = queue_protect_show,
-+      .store = queue_protect_store,
-+};
-+static struct queue_sysfs_entry queue_protect_method_entry = {
-+      .attr = { .name = "protect_method", .mode = S_IRUGO | S_IWUSR },
-+      .show = queue_protect_method_show,
-+      .store = queue_protect_method_store,
-+};
-+
-+static int blk_protect_register(struct request_queue *q)
-+{
-+      int error = 0;
-+
-+      /* check that the lower level driver has a protect handler */
-+      if (!q->issue_protect_fn)
-+              return 1;
-+
-+      /* create the attributes */
-+      error = sysfs_create_file(&q->kobj, &queue_protect_entry.attr);
-+      if (error) {
-+              printk(KERN_ERR
-+                     "blk_protect_register(): failed to create protect queue attribute!\n");
-+              return error;
-+      }
-+      kobject_get(&q->kobj);
-+
-+      error = sysfs_create_file(&q->kobj, &queue_protect_method_entry.attr);
-+      if (error) {
-+              printk(KERN_ERR
-+                     "blk_protect_register(): failed to create protect_method attribute!\n");
-+              return error;
-+      }
-+      kobject_get(&q->kobj);
-+
-+      return 0;
-+}
-+
-+static void blk_protect_unregister(struct request_queue *q)
-+{
-+      /* check that the lower level driver has a protect handler */
-+      if (!q->issue_protect_fn)
-+              return;
-+
-+      /* remove the attributes */
-+      sysfs_remove_file(&q->kobj, &queue_protect_method_entry.attr);
-+      kobject_put(&q->kobj);
-+      sysfs_remove_file(&q->kobj, &queue_protect_entry.attr);
-+      kobject_put(&q->kobj);
-+}
-diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
-index e836476..c587bf1 100644
---- a/drivers/ata/libata-scsi.c
-+++ b/drivers/ata/libata-scsi.c
-@@ -781,6 +781,38 @@ static void ata_scsi_dev_config(struct s
-       }
- }
-+extern int scsi_protect_queue(struct request_queue *q, int unload);
-+extern int scsi_unprotect_queue(struct request_queue *q);
-+
-+static int ata_scsi_issue_protect_fn(struct request_queue *q)
-+{
-+      struct scsi_device *sdev = q->queuedata;
-+      struct ata_port *ap = ata_shost_to_port(sdev->host);
-+      struct ata_device *dev = ata_scsi_find_dev(ap, sdev);
-+      int unload = q->protect_method;
-+      unsigned long flags;
-+
-+      if (!dev) {
-+              printk(KERN_DEBUG "ata_scsi_issue_protect_fn(): Couldn't find ATA device to be parked.\n");
-+              return -ENXIO;
-+      }
-+
-+      if (unload == 2) {
-+              unload = ata_id_has_unload(dev->id) ? 1 : 0;
-+              spin_lock_irqsave(q->queue_lock, flags);
-+              q->protect_method = unload;
-+              spin_unlock_irqrestore(q->queue_lock, flags);
-+      }
-+
-+      /* call scsi_protect_queue, requesting either unload or standby */
-+      return scsi_protect_queue(q, unload);
-+}
-+
-+static int ata_scsi_issue_unprotect_fn(struct request_queue *q)
-+{
-+      return scsi_unprotect_queue(q);
-+}
-+
- /**
-  *    ata_scsi_slave_config - Set SCSI device attributes
-  *    @sdev: SCSI device to examine
-@@ -806,6 +838,10 @@ int ata_scsi_slave_config(struct scsi_de
-       if (dev)
-               ata_scsi_dev_config(sdev, dev);
-+      blk_queue_issue_protect_fn(sdev->request_queue,
-+              ata_scsi_issue_protect_fn);
-+      blk_queue_issue_unprotect_fn(sdev->request_queue,
-+              ata_scsi_issue_unprotect_fn);
-       return 0;       /* scsi layer doesn't check return value, sigh */
- }
-diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
-index 4754769..938408d 100644
---- a/drivers/ide/ide-disk.c
-+++ b/drivers/ide/ide-disk.c
-@@ -743,6 +743,145 @@ static int idedisk_issue_flush(struct re
- }
- /*
-+ * todo:
-+ *  - we freeze the queue regardless of success and rely on the
-+ *    ide_protect_queue function to thaw immediately if the command
-+ *    failed (to be consistent with the libata handler)... should
-+ *    we also inspect here?
-+ */
-+void ide_end_protect_rq(struct request *rq, int error)
-+{
-+      struct completion *waiting = rq->end_io_data;
-+
-+      rq->end_io_data = NULL;
-+      /* spin lock already accquired */
-+      if (!blk_queue_stopped(rq->q))
-+              blk_stop_queue(rq->q);
-+
-+      complete(waiting);
-+}
-+
-+int ide_unprotect_queue(struct request_queue *q)
-+{
-+      struct request rq;
-+      unsigned long flags;
-+      int pending = 0, rc = 0;
-+      ide_drive_t *drive = q->queuedata;
-+      u8 args[7], *argbuf = args;
-+
-+      if (!blk_queue_stopped(q))
-+              return -EIO;
-+
-+      /* Are there any pending jobs on the queue? */
-+      pending = ((q->rq.count[READ] > 0) || (q->rq.count[WRITE] > 0)) ? 1 : 0;
-+
-+      spin_lock_irqsave(q->queue_lock, flags);
-+      blk_start_queue(q);
-+      spin_unlock_irqrestore(q->queue_lock, flags);
-+
-+      /* The unload feature of the IDLE_IMMEDIATE command
-+         temporarily disables HD power management from spinning down
-+         the disk. Any other command will reenable HD pm, so, if
-+         there are no pending jobs on the queue, another
-+         CHECK_POWER_MODE1 command without the unload feature should do
-+         just fine. */
-+      if (!pending) {
-+              printk(KERN_DEBUG "ide_unprotect_queue(): No pending I/O, re-enabling power management..\n");
-+              memset(args, 0, sizeof(args));
-+              argbuf[0] = 0xe5; /* CHECK_POWER_MODE1 */
-+              ide_init_drive_cmd(&rq);
-+              rq.cmd_type = REQ_TYPE_ATA_TASK;
-+              rq.buffer = argbuf;
-+              rc = ide_do_drive_cmd(drive, &rq, ide_head_wait);
-+      }
-+
-+      return rc;
-+}
-+
-+int ide_protect_queue(struct request_queue *q, int unload)
-+{
-+      ide_drive_t *drive = q->queuedata;
-+      struct request rq;
-+      u8 args[7], *argbuf = args;
-+      int ret = 0;
-+      DECLARE_COMPLETION(wait);
-+
-+      memset(&rq, 0, sizeof(rq));
-+      memset(args, 0, sizeof(args));
-+
-+      if (blk_queue_stopped(q))
-+              return -EIO;
-+
-+      if (unload) {
-+              argbuf[0] = 0xe1;
-+              argbuf[1] = 0x44;
-+              argbuf[3] = 0x4c;
-+              argbuf[4] = 0x4e;
-+              argbuf[5] = 0x55;
-+      } else
-+              argbuf[0] = 0xe0;
-+
-+      /* Issue the park command & freeze */
-+      ide_init_drive_cmd(&rq);
-+
-+      rq.cmd_type = REQ_TYPE_ATA_TASK;
-+      rq.buffer = argbuf;
-+      rq.end_io_data = &wait;
-+      rq.end_io = ide_end_protect_rq;
-+
-+      ret = ide_do_drive_cmd(drive, &rq, ide_next);
-+      wait_for_completion(&wait);
-+
-+      if (ret)
-+      {
-+              printk(KERN_DEBUG "ide_protect_queue(): Warning: head NOT parked!..\n");
-+              ide_unprotect_queue(q);
-+              return ret;
-+      }
-+
-+      if (unload) {
-+              if (args[3] == 0xc4)
-+                      printk(KERN_DEBUG "ide_protect_queue(): head parked..\n");
-+              else {
-+                      /* error parking the head */
-+                      printk(KERN_DEBUG "ide_protect_queue(): head NOT parked!..\n");
-+                      ret = -EIO;
-+                      ide_unprotect_queue(q);
-+              }
-+      } else
-+              printk(KERN_DEBUG "ide_protect_queue(): head park not requested, used standby!..\n");
-+
-+      return ret;
-+}
-+
-+int idedisk_issue_protect_fn(struct request_queue *q)
-+{
-+      ide_drive_t *drive = q->queuedata;
-+      int unload = q->protect_method;
-+      unsigned long flags;
-+
-+      /*
-+       * Check capability of the device -
-+       *  - if "idle immediate with unload" is supported we use that, else
-+       *    we use "standby immediate" and live with spinning down the drive..
-+       *    (Word 84, bit 13 of IDENTIFY DEVICE data)
-+       */
-+      if (unload == 2) {
-+              unload = drive->id->cfsse & (1 << 13) ? 1 : 0;
-+              spin_lock_irqsave(q->queue_lock, flags);
-+              q->protect_method = unload;
-+              spin_unlock_irqrestore(q->queue_lock, flags);
-+      }
-+
-+      return ide_protect_queue(q, unload);
-+}
-+
-+int idedisk_issue_unprotect_fn(struct request_queue *q)
-+{
-+      return ide_unprotect_queue(q);
-+}
-+
-+/*
-  * This is tightly woven into the driver->do_special can not touch.
-  * DON'T do it again until a total personality rewrite is committed.
-  */
-@@ -1017,6 +1156,9 @@ static void idedisk_setup (ide_drive_t *
-               drive->wcache = 1;
-       write_cache(drive, 1);
-+
-+      blk_queue_issue_protect_fn(drive->queue, idedisk_issue_protect_fn);
-+      blk_queue_issue_unprotect_fn(drive->queue, idedisk_issue_unprotect_fn);
- }
- static void ide_cacheflush_p(ide_drive_t *drive)
-diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
-index aa9f5f0..e664f5c 100644
---- a/drivers/ide/ide-io.c
-+++ b/drivers/ide/ide-io.c
-@@ -1276,6 +1276,17 @@ #endif
-               }
-               /*
-+               * Don't accept a request when the queue is stopped (unless we
-+               * are resuming from suspend). Prevents existing queue entries
-+               * being processed after queue is stopped by the hard disk
-+               * protection mechanism...
-+               */
-+              if (test_bit(QUEUE_FLAG_STOPPED, &drive->queue->queue_flags) && !blk_pm_resume_request(rq)) {
-+                      hwgroup->busy = 0;
-+                      break;
-+              }
-+
-+              /*
-                * Sanity: don't accept a request that isn't a PM request
-                * if we are currently power managed. This is very important as
-                * blk_stop_queue() doesn't prevent the elv_next_request()
-@@ -1773,6 +1784,9 @@ int ide_do_drive_cmd (ide_drive_t *drive
-               where = ELEVATOR_INSERT_FRONT;
-               rq->cmd_flags |= REQ_PREEMPT;
-       }
-+      if (action == ide_next)
-+              where = ELEVATOR_INSERT_FRONT;
-+
-       __elv_add_request(drive->queue, rq, where, 0);
-       ide_do_request(hwgroup, IDE_NO_IRQ);
-       spin_unlock_irqrestore(&ide_lock, flags);
-diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
-index a417a6f..07d19b3 100644
---- a/drivers/scsi/scsi_lib.c
-+++ b/drivers/scsi/scsi_lib.c
-@@ -2273,3 +2273,166 @@ void scsi_kunmap_atomic_sg(void *virt)
-       kunmap_atomic(virt, KM_BIO_SRC_IRQ);
- }
- EXPORT_SYMBOL(scsi_kunmap_atomic_sg);
-+
-+/*
-+ * Structure required for synchronous io completion after queue freezing
-+ */
-+struct scsi_protect_io_context_sync {
-+      struct scsi_device *sdev;
-+      int result;
-+      char *sense;
-+      struct completion *waiting;
-+};
-+
-+/*
-+ * scsi_protect_wait_done()
-+ * Command completion handler for scsi_protect_queue().
-+ *
-+ * Unable to call scsi_internal_device_block() as
-+ * scsi_end_request() already has the spinlock. So,
-+ * we put the necessary functionality inline.
-+ *
-+ * todo:
-+ *  - we block the queue regardless of success and rely on the
-+ *    scsi_protect_queue function to unblock if the command
-+ *    failed... should we also inspect here?
-+ */
-+static void scsi_protect_wait_done(void *data, char *sense, int result, int resid)
-+{
-+      struct scsi_protect_io_context_sync *siocs = data;
-+      struct completion *waiting = siocs->waiting;
-+      struct request_queue *q = siocs->sdev->request_queue;
-+
-+      siocs->waiting = NULL;
-+      siocs->result = result;
-+      memcpy(siocs->sense, sense, SCSI_SENSE_BUFFERSIZE);
-+
-+      if (!scsi_device_set_state(siocs->sdev, SDEV_BLOCK))
-+              blk_stop_queue(q);
-+
-+      complete(waiting);
-+}
-+
-+/*
-+ * scsi_unprotect_queue()
-+ *  - release the queue that was previously blocked
-+ */
-+int scsi_unprotect_queue(struct request_queue *q)
-+{
-+      struct scsi_device *sdev = q->queuedata;
-+      int rc = 0, pending = 0;
-+      u8 scsi_cmd[MAX_COMMAND_SIZE];
-+      struct scsi_sense_hdr sshdr;
-+
-+      if (sdev->sdev_state != SDEV_BLOCK)
-+              return -ENXIO;
-+
-+      /* Are there any pending jobs on the queue? */
-+      pending = ((q->rq.count[READ] > 0) || (q->rq.count[WRITE] > 0)) ? 1 : 0;
-+
-+      rc = scsi_internal_device_unblock(sdev);
-+      if (rc)
-+              return rc;
-+
-+      if (!pending) {
-+              printk(KERN_DEBUG "scsi_unprotect_queue(): No pending I/O, re-enabling power management..\n");
-+
-+              memset(scsi_cmd, 0, sizeof(scsi_cmd));
-+              scsi_cmd[0]  = ATA_16;
-+              scsi_cmd[1]  = (3 << 1); /* Non-data */
-+              /* scsi_cmd[2] is already 0 -- no off.line, cc, or data xfer */
-+              scsi_cmd[14] = 0xe5; /* CHECK_POWER_MODE1 */
-+
-+              /* Good values for timeout and retries?  Values below
-+                 from scsi_ioctl_send_command() for default case... */
-+              if (scsi_execute_req(sdev, scsi_cmd, DMA_NONE, NULL, 0, &sshdr,
-+                                   (10*HZ), 5))
-+                      rc = -EIO;
-+      }
-+      return rc;
-+}
-+EXPORT_SYMBOL_GPL(scsi_unprotect_queue);
-+
-+/*
-+ * scsi_protect_queue()
-+ *  - build and issue the park/standby command..
-+ *  - queue is blocked during command completion handler
-+ */
-+int scsi_protect_queue(struct request_queue *q, int unload)
-+{
-+      struct scsi_protect_io_context_sync siocs;
-+      struct scsi_device *sdev = q->queuedata;
-+      int rc = 0;
-+      u8 args[7];
-+      u8 scsi_cmd[MAX_COMMAND_SIZE];
-+      unsigned char sense[SCSI_SENSE_BUFFERSIZE];
-+      unsigned char *desc;
-+      DECLARE_COMPLETION_ONSTACK(wait);
-+
-+      if (sdev->sdev_state != SDEV_RUNNING)
-+              return -ENXIO;
-+
-+      memset(args, 0, sizeof(args));
-+      memset(sense, 0, sizeof(sense));
-+
-+      if (unload) {
-+              args[0] = 0xe1;
-+              args[1] = 0x44;
-+              args[3] = 0x4c;
-+              args[4] = 0x4e;
-+              args[5] = 0x55;
-+      } else
-+              args[0] = 0xe0;
-+
-+      memset(scsi_cmd, 0, sizeof(scsi_cmd));
-+      scsi_cmd[0]  = ATA_16;
-+      scsi_cmd[1]  = (3 << 1); /* Non-data */
-+      scsi_cmd[2]  = 0x20;     /* no off.line, or data xfer, request cc */
-+      scsi_cmd[4]  = args[1];
-+      scsi_cmd[6]  = args[2];
-+      scsi_cmd[8]  = args[3];
-+      scsi_cmd[10] = args[4];
-+      scsi_cmd[12] = args[5];
-+      scsi_cmd[14] = args[0];
-+      siocs.sdev = sdev;
-+      siocs.sense = sense;
-+      siocs.waiting = &wait;
-+
-+      scsi_execute_async(sdev, scsi_cmd, COMMAND_SIZE(scsi_cmd[0]),
-+                         DMA_NONE, NULL, 0, 0, (10*HZ), 5,
-+                         &siocs, &scsi_protect_wait_done, GFP_NOWAIT);
-+      wait_for_completion(&wait);
-+
-+      if (siocs.result != ((DRIVER_SENSE << 24) + SAM_STAT_CHECK_CONDITION)) {
-+              printk(KERN_DEBUG "scsi_protect_queue(): head NOT parked!..\n");
-+              scsi_unprotect_queue(q);                /* just in case we still managed to block */
-+              rc = -EIO;
-+              goto out;
-+      }
-+
-+      desc = sense + 8;
-+
-+      /* Retrieve data from check condition */
-+      args[1] = desc[3];
-+      args[2] = desc[5];
-+      args[3] = desc[7];
-+      args[4] = desc[9];
-+      args[5] = desc[11];
-+      args[0] = desc[13];
-+
-+      if (unload) {
-+              if (args[3] == 0xc4)
-+                      printk(KERN_DEBUG "scsi_protect_queue(): head parked..\n");
-+              else {
-+                      /* error parking the head */
-+                      printk(KERN_DEBUG "scsi_protect_queue(): head NOT parked!..\n");
-+                      rc = -EIO;
-+                      scsi_unprotect_queue(q);
-+              }
-+      } else
-+              printk(KERN_DEBUG "scsi_protect_queue(): head park not requested, used standby!..\n");
-+
-+out:
-+      return rc;
-+}
-+EXPORT_SYMBOL_GPL(scsi_protect_queue);
-diff --git a/include/linux/ata.h b/include/linux/ata.h
-index c043c1c..618906f 100644
---- a/include/linux/ata.h
-+++ b/include/linux/ata.h
-@@ -344,6 +344,7 @@ #define ata_id_is_ata(id)  (((id)[0] & (1
- #define ata_id_rahead_enabled(id) ((id)[85] & (1 << 6))
- #define ata_id_wcache_enabled(id) ((id)[85] & (1 << 5))
- #define ata_id_hpa_enabled(id)        ((id)[85] & (1 << 10))
-+#define ata_id_has_unload(id) ((id)[84] & (1 << 13))
- #define ata_id_has_fua(id)    ((id)[84] & (1 << 6))
- #define ata_id_has_flush(id)  ((id)[83] & (1 << 12))
- #define ata_id_has_flush_ext(id) ((id)[83] & (1 << 13))
-diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
-index b126c6f..12feccc 100644
---- a/include/linux/blkdev.h
-+++ b/include/linux/blkdev.h
-@@ -347,6 +347,8 @@ typedef int (merge_bvec_fn) (struct requ
- typedef int (issue_flush_fn) (struct request_queue *, struct gendisk *, sector_t *);
- typedef void (prepare_flush_fn) (struct request_queue *, struct request *);
- typedef void (softirq_done_fn)(struct request *);
-+typedef int (issue_protect_fn) (struct request_queue *);
-+typedef int (issue_unprotect_fn) (struct request_queue *);
- enum blk_queue_state {
-       Queue_down,
-@@ -385,6 +387,8 @@ struct request_queue
-       issue_flush_fn          *issue_flush_fn;
-       prepare_flush_fn        *prepare_flush_fn;
-       softirq_done_fn         *softirq_done_fn;
-+      issue_protect_fn        *issue_protect_fn;
-+      issue_unprotect_fn      *issue_unprotect_fn;
-       /*
-        * Dispatch queue sorting
-@@ -400,6 +404,14 @@ struct request_queue
-       unsigned long           unplug_delay;   /* After this many jiffies */
-       struct work_struct      unplug_work;
-+      /*
-+       * Auto-unfreeze state
-+       */
-+      struct timer_list       unfreeze_timer;
-+      int                     max_unfreeze;   /* At most this many seconds */
-+      struct work_struct      unfreeze_work;
-+      int                     protect_method;
-+
-       struct backing_dev_info backing_dev_info;
-       /*
-@@ -774,6 +786,8 @@ extern int blk_do_ordered(struct request
- extern unsigned blk_ordered_cur_seq(struct request_queue *);
- extern unsigned blk_ordered_req_seq(struct request *);
- extern void blk_ordered_complete_seq(struct request_queue *, unsigned, int);
-+extern void blk_queue_issue_protect_fn(struct request_queue *, issue_protect_fn *);
-+extern void blk_queue_issue_unprotect_fn(struct request_queue *, issue_unprotect_fn *);
- extern int blk_rq_map_sg(struct request_queue *, struct request *, struct scatterlist *);
- extern void blk_dump_rq_flags(struct request *, char *);
-diff --git a/include/linux/ide.h b/include/linux/ide.h
-index b9f66c1..8491dcf 100644
---- a/include/linux/ide.h
-+++ b/include/linux/ide.h
-@@ -1110,6 +1110,7 @@ extern u64 ide_get_error_location(ide_dr
-  */
- typedef enum {
-       ide_wait,       /* insert rq at end of list, and wait for it */
-+      ide_next,       /* insert rq immediately after current request */
-       ide_preempt,    /* insert rq in front of current request */
-       ide_head_wait,  /* insert rq in front of current request and wait for it */
-       ide_end         /* insert rq at end of list, but don't wait for it */
diff --git a/sys-kernel/thinkpad-sources/files/2.6.23/input-unknown_keycodes-for-2.6.23.patch b/sys-kernel/thinkpad-sources/files/2.6.23/input-unknown_keycodes-for-2.6.23.patch
deleted file mode 100644 (file)
index 0737d6f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- linux/drivers/input/input.c        2006-03-05 20:07:54.000000000 +0100
-+++ linux/drivers/input/input.c        2006-03-02 22:18:37.000000000 +0100
-@@ -71,7 +71,7 @@
-               case EV_KEY:
--                      if (code > KEY_MAX || !test_bit(code, dev->keybit) || !!test_bit(code, dev->key) == value)
-+                      if (code > KEY_MAX || !!test_bit(code, dev->key) == value)
-                               return;
-                       if (value == 2)
diff --git a/sys-kernel/thinkpad-sources/files/2.6.23/linux-phc-0.3.1-for-2.6.23.patch b/sys-kernel/thinkpad-sources/files/2.6.23/linux-phc-0.3.1-for-2.6.23.patch
deleted file mode 100644 (file)
index db9db5b..0000000
+++ /dev/null
@@ -1,530 +0,0 @@
-diff --new-file -a --unified=5 --recursive linux-2.6.23-rc3/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c linux-source-2.6.23-rc3/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
---- linux-2.6.23-rc3/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c       2007-08-13 06:25:24.000000000 +0200
-+++ linux-source-2.6.23-rc3/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c        2007-08-14 15:33:30.000000000 +0200
-@@ -23,10 +23,15 @@
-  *  59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
-  *
-  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-  */
-+/* This file has been patched with Linux PHC: https://www.dedigentoo.org/trac/linux-phc
-+ * Patch version: linux-phc-0.3.1-kernel-vanilla-2.6.23.patch
-+ */
-+
-+
- #include <linux/kernel.h>
- #include <linux/module.h>
- #include <linux/init.h>
- #include <linux/smp.h>
- #include <linux/sched.h>
-@@ -57,16 +62,22 @@
- };
- #define INTEL_MSR_RANGE               (0xffff)
- #define CPUID_6_ECX_APERFMPERF_CAPABILITY     (0x1)
-+#define INTEL_MSR_VID_MASK    (0x00ff)
-+#define INTEL_MSR_FID_MASK    (0xff00)
-+#define INTEL_MSR_FID_SHIFT   (0x8)
-+#define PHC_VERSION_STRING    "0.3.1"
-+
- struct acpi_cpufreq_data {
-       struct acpi_processor_performance *acpi_data;
-       struct cpufreq_frequency_table *freq_table;
-       unsigned int max_freq;
-       unsigned int resume;
-       unsigned int cpu_feature;
-+      acpi_integer *original_controls;
- };
- static struct acpi_cpufreq_data *drv_data[NR_CPUS];
- /* acpi_perf_data is a pointer to percpu data. */
- static struct acpi_processor_performance *acpi_perf_data;
-@@ -101,17 +112,19 @@
- }
- static unsigned extract_msr(u32 msr, struct acpi_cpufreq_data *data)
- {
-       int i;
-+      u32 fid;
-       struct acpi_processor_performance *perf;
--      msr &= INTEL_MSR_RANGE;
-+      fid = msr & INTEL_MSR_FID_MASK;
-       perf = data->acpi_data;
-       for (i=0; data->freq_table[i].frequency != CPUFREQ_TABLE_END; i++) {
--              if (msr == perf->states[data->freq_table[i].index].status)
-+              if (fid == (perf->states[data->freq_table[i].index].status &
-+                  INTEL_MSR_FID_MASK))
-                       return data->freq_table[i].frequency;
-       }
-       return data->freq_table[0].frequency;
- }
-@@ -729,10 +742,12 @@
-       if (data) {
-               cpufreq_frequency_table_put_attr(policy->cpu);
-               drv_data[policy->cpu] = NULL;
-               acpi_processor_unregister_performance(data->acpi_data,
-                                                     policy->cpu);
-+              if (data->original_controls)
-+                      kfree(data->original_controls);
-               kfree(data);
-       }
-       return 0;
- }
-@@ -746,12 +761,452 @@
-       data->resume = 1;
-       return 0;
- }
-+
-+
-+
-+/* sysfs interface to change operating points voltages */
-+
-+static unsigned int extract_fid_from_control(unsigned int control)
-+{
-+      return ((control & INTEL_MSR_FID_MASK) >> INTEL_MSR_FID_SHIFT);
-+}
-+
-+static unsigned int extract_vid_from_control(unsigned int control)
-+{
-+      return (control & INTEL_MSR_VID_MASK);
-+}
-+
-+static ssize_t check_origial_table (struct acpi_cpufreq_data *data)
-+{
-+      struct acpi_processor_performance *acpi_data;
-+      struct cpufreq_frequency_table *freq_table;
-+      unsigned int state_index;
-+
-+      acpi_data = data->acpi_data;
-+      freq_table = data->freq_table;
-+
-+      if (data->original_controls == NULL) {
-+              // Backup original control values
-+              data->original_controls = kcalloc(acpi_data->state_count,
-+                                                sizeof(acpi_integer), GFP_KERNEL);
-+              if (data->original_controls == NULL) {
-+                      printk("failed to allocate memory for original control values\n");
-+                      return -ENOMEM;
-+              }
-+              for (state_index = 0; state_index < acpi_data->state_count; state_index++) {
-+                      data->original_controls[state_index] = acpi_data->states[state_index].control;
-+              }
-+      }
-+      return 0;
-+}
-+
-+static ssize_t show_freq_attr_vids(struct cpufreq_policy *policy, char *buf)
-+{
-+      struct acpi_cpufreq_data *data = drv_data[policy->cpu];
-+      struct acpi_processor_performance *acpi_data;
-+      struct cpufreq_frequency_table *freq_table;
-+      unsigned int i;
-+      unsigned int vid;
-+      ssize_t count = 0;
-+
-+      if (unlikely(data == NULL || 
-+                   data->acpi_data == NULL || 
-+                   data->freq_table == NULL ||
-+                   data->cpu_feature != SYSTEM_INTEL_MSR_CAPABLE)) {
-+              return -ENODEV;
-+      }
-+
-+      acpi_data = data->acpi_data;
-+      freq_table = data->freq_table;
-+
-+      for (i = 0; freq_table[i].frequency != CPUFREQ_TABLE_END; i++) {
-+              vid = extract_vid_from_control(acpi_data->states[freq_table[i].index].control);
-+              count += sprintf(&buf[count], "%u ", vid);
-+      }
-+      count += sprintf(&buf[count], "\n");
-+
-+      return count;
-+}
-+
-+static ssize_t show_freq_attr_default_vids(struct cpufreq_policy *policy, char *buf)
-+{
-+      struct acpi_cpufreq_data *data = drv_data[policy->cpu];
-+      struct cpufreq_frequency_table *freq_table;
-+      unsigned int i;
-+      unsigned int vid;
-+      ssize_t count = 0;
-+      ssize_t retval;
-+
-+      if (unlikely(data == NULL || 
-+                   data->acpi_data == NULL || 
-+                   data->freq_table == NULL ||
-+                   data->cpu_feature != SYSTEM_INTEL_MSR_CAPABLE)) {
-+              return -ENODEV;
-+      }
-+
-+      retval = check_origial_table(data);
-+        if (0 != retval)
-+              return retval; 
-+
-+      freq_table = data->freq_table;
-+
-+      for (i = 0; freq_table[i].frequency != CPUFREQ_TABLE_END; i++) {
-+              vid = extract_vid_from_control(data->original_controls[freq_table[i].index]);
-+              count += sprintf(&buf[count], "%u ", vid);
-+      }
-+      count += sprintf(&buf[count], "\n");
-+
-+      return count;
-+}
-+
-+static ssize_t show_freq_attr_fids(struct cpufreq_policy *policy, char *buf)
-+{
-+      struct acpi_cpufreq_data *data = drv_data[policy->cpu];
-+      struct acpi_processor_performance *acpi_data;
-+      struct cpufreq_frequency_table *freq_table;
-+      unsigned int i;
-+      unsigned int fid;
-+      ssize_t count = 0;
-+
-+      if (unlikely(data == NULL || 
-+                   data->acpi_data == NULL || 
-+                   data->freq_table == NULL ||
-+                   data->cpu_feature != SYSTEM_INTEL_MSR_CAPABLE)) {
-+              return -ENODEV;
-+      }
-+
-+      acpi_data = data->acpi_data;
-+      freq_table = data->freq_table;
-+
-+      for (i = 0; freq_table[i].frequency != CPUFREQ_TABLE_END; i++) {
-+              fid = extract_fid_from_control(acpi_data->states[freq_table[i].index].control);
-+              count += sprintf(&buf[count], "%u ", fid);
-+      }
-+      count += sprintf(&buf[count], "\n");
-+
-+      return count;
-+}
-+
-+static ssize_t show_freq_attr_controls(struct cpufreq_policy *policy, char *buf)
-+{
-+      struct acpi_cpufreq_data *data = drv_data[policy->cpu];
-+      struct acpi_processor_performance *acpi_data;
-+      struct cpufreq_frequency_table *freq_table;
-+      unsigned int i;
-+      unsigned int fid;
-+      unsigned int vid;
-+      ssize_t count = 0;
-+
-+      if (unlikely(data == NULL || 
-+                   data->acpi_data == NULL || 
-+                   data->freq_table == NULL ||
-+                   data->cpu_feature != SYSTEM_INTEL_MSR_CAPABLE)) {
-+              return -ENODEV;
-+      }
-+
-+      acpi_data = data->acpi_data;
-+      freq_table = data->freq_table;
-+
-+      for (i = 0; freq_table[i].frequency != CPUFREQ_TABLE_END; i++) {
-+              fid = extract_fid_from_control(acpi_data->states[freq_table[i].index].control);
-+              vid = extract_vid_from_control(acpi_data->states[freq_table[i].index].control);
-+              count += sprintf(&buf[count], "%u:%u ", fid, vid);
-+      }
-+      count += sprintf(&buf[count], "\n");
-+
-+      return count;
-+}
-+
-+static ssize_t show_freq_attr_default_controls(struct cpufreq_policy *policy, char *buf)
-+{
-+      struct acpi_cpufreq_data *data = drv_data[policy->cpu];
-+      struct cpufreq_frequency_table *freq_table;
-+      unsigned int i;
-+      unsigned int fid;
-+      unsigned int vid;
-+      ssize_t count = 0;
-+      ssize_t retval;
-+
-+      if (unlikely(data == NULL || 
-+                   data->acpi_data == NULL || 
-+                   data->freq_table == NULL ||
-+                   data->cpu_feature != SYSTEM_INTEL_MSR_CAPABLE)) {
-+              return -ENODEV;
-+      }
-+
-+      retval = check_origial_table(data);
-+        if (0 != retval)
-+              return retval; 
-+
-+      freq_table = data->freq_table;
-+
-+      for (i = 0; freq_table[i].frequency != CPUFREQ_TABLE_END; i++) {
-+              fid = extract_fid_from_control(data->original_controls[freq_table[i].index]);
-+              vid = extract_vid_from_control(data->original_controls[freq_table[i].index]);
-+              count += sprintf(&buf[count], "%u:%u ", fid, vid);
-+      }
-+      count += sprintf(&buf[count], "\n");
-+
-+      return count;
-+}
-+
-+
-+static ssize_t store_freq_attr_vids(struct cpufreq_policy *policy, const char *buf, size_t count)
-+{
-+      struct acpi_cpufreq_data *data = drv_data[policy->cpu];
-+      struct acpi_processor_performance *acpi_data;
-+      struct cpufreq_frequency_table *freq_table;
-+      unsigned int freq_index;
-+      unsigned int state_index;
-+      unsigned int new_vid;
-+      unsigned int original_vid;
-+      unsigned int new_control;
-+      unsigned int original_control;
-+      const char *curr_buf = buf;
-+      char *next_buf;
-+      ssize_t retval;
-+
-+      if (unlikely(data == NULL || 
-+                   data->acpi_data == NULL || 
-+                   data->freq_table == NULL ||
-+                   data->cpu_feature != SYSTEM_INTEL_MSR_CAPABLE)) {
-+              return -ENODEV;
-+      }
-+
-+      retval = check_origial_table(data);
-+        if (0 != retval)
-+              return retval; 
-+
-+      acpi_data = data->acpi_data;
-+      freq_table = data->freq_table;
-+
-+      for (freq_index = 0; freq_table[freq_index].frequency != CPUFREQ_TABLE_END; freq_index++) {
-+              new_vid = simple_strtoul(curr_buf, &next_buf, 10);
-+              if (next_buf == curr_buf) {
-+                      if ((curr_buf - buf == count - 1) && (*curr_buf == '\n')) {
-+                              curr_buf++;
-+                              break;
-+                      }
-+                      printk("failed to parse vid value at %i (%s)\n", freq_index, curr_buf);
-+                      return -EINVAL;
-+              }
-+
-+              state_index = freq_table[freq_index].index;
-+              original_control = data->original_controls[state_index];
-+              original_vid = original_control & INTEL_MSR_VID_MASK;
-+              if (new_vid <= original_vid) {
-+                      new_control = (original_control & ~INTEL_MSR_VID_MASK) | new_vid;
-+                      dprintk("setting control at %i to %x (default is %x)\n",
-+                              freq_index, new_control, original_control);
-+                      acpi_data->states[state_index].control = new_control;
-+
-+              } else {
-+                      printk("skipping vid at %i, %u is greater than default %u\n",
-+                             freq_index, new_vid, original_vid);
-+              }
-+
-+              curr_buf = next_buf;
-+              while ((curr_buf - buf < count) && ((*curr_buf == ' ') || (*curr_buf == ','))) {
-+                      curr_buf++;
-+              }
-+      }
-+
-+      /* set new voltage at current frequency */
-+      data->resume = 1;
-+      acpi_cpufreq_target(policy, get_cur_freq_on_cpu(policy->cpu), CPUFREQ_RELATION_L);
-+
-+      return curr_buf - buf;
-+}
-+
-+static ssize_t store_freq_attr_controls(struct cpufreq_policy *policy, const char *buf, size_t count)
-+{
-+      struct acpi_cpufreq_data *data = drv_data[policy->cpu];
-+      struct acpi_processor_performance *acpi_data;
-+      struct cpufreq_frequency_table *freq_table;
-+      const char   *curr_buf;
-+      unsigned int  op_count;
-+      unsigned int  state_index;
-+      int           isok;
-+      char         *next_buf;
-+      ssize_t       retval;
-+      unsigned int  new_vid;
-+      unsigned int  original_vid;
-+      unsigned int  new_fid;
-+      unsigned int  old_fid;
-+      unsigned int  original_control;
-+      unsigned int  old_control;
-+      unsigned int  new_control;
-+      int           found;
-+
-+      if (unlikely(data == NULL || 
-+                   data->acpi_data == NULL || 
-+                   data->freq_table == NULL ||
-+                   data->cpu_feature != SYSTEM_INTEL_MSR_CAPABLE)) {
-+              return -ENODEV;
-+      }
-+
-+      retval = check_origial_table(data);
-+        if (0 != retval)
-+              return retval;
-+
-+      acpi_data = data->acpi_data;
-+      freq_table = data->freq_table;
-+
-+      op_count = 0;
-+      curr_buf = buf;
-+      next_buf = NULL;
-+      isok     = 1;
-+      
-+      while ( (isok) && (curr_buf != NULL) )
-+      {
-+              op_count++;
-+              // Parse fid
-+              new_fid = simple_strtoul(curr_buf, &next_buf, 10);
-+              if ((next_buf != curr_buf) && (next_buf != NULL))
-+              {
-+                      // Parse separator between frequency and voltage 
-+                      curr_buf = next_buf;
-+                      next_buf = NULL;
-+                      if (*curr_buf==':')
-+                      {
-+                              curr_buf++;
-+                              // Parse vid
-+                              new_vid = simple_strtoul(curr_buf, &next_buf, 10);
-+                              if ((next_buf != curr_buf) && (next_buf != NULL))
-+                              {
-+                                      found = 0;
-+                                      for (state_index = 0; state_index < acpi_data->state_count; state_index++) {
-+                                              old_control = acpi_data->states[state_index].control;
-+                                              old_fid = extract_fid_from_control(old_control);
-+                                              if (new_fid == old_fid)
-+                                              {
-+                                                      found = 1;
-+                                                      original_control = data->original_controls[state_index];
-+                                                      original_vid = extract_vid_from_control(original_control);
-+                                                      if (new_vid <= original_vid)
-+                                                      {
-+                                                              new_control = (original_control & ~INTEL_MSR_VID_MASK) | new_vid;
-+                                                              dprintk("setting control at %i to %x (default is %x)\n",
-+                                                                      state_index, new_control, original_control);
-+                                                              acpi_data->states[state_index].control = new_control;
-+
-+                                                      } else {
-+                                                              printk("skipping vid at %i, %u is greater than default %u\n",
-+                                                                     state_index, new_vid, original_vid);
-+                                                      }
-+                                              }
-+                                      }
-+
-+                                      if (found == 0)
-+                                      {
-+                                              printk("operating point # %u not found (FID = %u)\n", op_count, new_fid);
-+                                              isok = 0;
-+                                      }
-+
-+                                      // Parse seprator before next operating point, if any
-+                                      curr_buf = next_buf;
-+                                      next_buf = NULL;
-+                                      if ((*curr_buf == ',') || (*curr_buf == ' '))
-+                                              curr_buf++;
-+                                      else
-+                                              curr_buf = NULL;
-+                              }
-+                              else
-+                              {
-+                                      printk("failed to parse VID of operating point # %u (%s)\n", op_count, curr_buf);
-+                                      isok = 0;
-+                              }
-+                      }
-+                      else
-+                      {
-+                              printk("failed to parse operating point # %u (%s)\n", op_count, curr_buf);
-+                              isok = 0;
-+                      }
-+              }
-+              else
-+              {
-+                      printk("failed to parse FID of operating point # %u (%s)\n", op_count, curr_buf);
-+                      isok = 0;
-+              }
-+      }
-+
-+      if (isok)
-+      {
-+              retval = count;
-+              /* set new voltage at current frequency */
-+              data->resume = 1;
-+              acpi_cpufreq_target(policy, get_cur_freq_on_cpu(policy->cpu), CPUFREQ_RELATION_L);
-+      }
-+      else
-+      {
-+              retval = -EINVAL;
-+      }
-+
-+      return retval;
-+}
-+
-+static ssize_t show_freq_attr_phc_version(struct cpufreq_policy *policy, char *buf)
-+{
-+      ssize_t count = 0;
-+      count += sprintf(&buf[count], "%s\n", PHC_VERSION_STRING);
-+      return count;
-+}
-+
-+static struct freq_attr cpufreq_freq_attr_phc_version =
-+{
-+       .attr = { .name = "phc_version", .mode = 0444, .owner = THIS_MODULE },
-+       .show = show_freq_attr_phc_version,
-+       .store = NULL,
-+};
-+
-+static struct freq_attr cpufreq_freq_attr_vids =
-+{
-+       .attr = { .name = "phc_vids", .mode = 0644, .owner = THIS_MODULE },
-+       .show = show_freq_attr_vids,
-+       .store = store_freq_attr_vids,
-+};
-+
-+static struct freq_attr cpufreq_freq_attr_default_vids =
-+{
-+       .attr = { .name = "phc_default_vids", .mode = 0444, .owner = THIS_MODULE },
-+       .show = show_freq_attr_default_vids,
-+       .store = NULL,
-+};
-+
-+static struct freq_attr cpufreq_freq_attr_fids =
-+{
-+       .attr = { .name = "phc_fids", .mode = 0444, .owner = THIS_MODULE },
-+       .show = show_freq_attr_fids,
-+       .store = NULL,
-+};
-+
-+static struct freq_attr cpufreq_freq_attr_controls =
-+{
-+       .attr = { .name = "phc_controls", .mode = 0644, .owner = THIS_MODULE },
-+       .show = show_freq_attr_controls,
-+       .store = store_freq_attr_controls,
-+};
-+
-+static struct freq_attr cpufreq_freq_attr_default_controls =
-+{
-+       .attr = { .name = "phc_default_controls", .mode = 0444, .owner = THIS_MODULE },
-+       .show = show_freq_attr_default_controls,
-+       .store = NULL,
-+};
-+
-+
- static struct freq_attr *acpi_cpufreq_attr[] = {
-+      &cpufreq_freq_attr_phc_version,
-       &cpufreq_freq_attr_scaling_available_freqs,
-+      &cpufreq_freq_attr_vids,
-+      &cpufreq_freq_attr_default_vids,
-+      &cpufreq_freq_attr_fids,
-+      &cpufreq_freq_attr_controls,
-+      &cpufreq_freq_attr_default_controls,
-       NULL,
- };
- static struct cpufreq_driver acpi_cpufreq_driver = {
-       .verify = acpi_cpufreq_verify,
diff --git a/sys-kernel/thinkpad-sources/files/configs/config-for-core-or-core2 b/sys-kernel/thinkpad-sources/files/configs/config-for-core-or-core2
deleted file mode 100644 (file)
index e324bd9..0000000
+++ /dev/null
@@ -1,2009 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.23-thinkpad-r1
-# Thu Nov  8 09:48:11 2007
-#
-CONFIG_X86_32=y
-CONFIG_GENERIC_TIME=y
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_CLOCKSOURCE_WATCHDOG=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_SEMAPHORE_SLEEPERS=y
-CONFIG_X86=y
-CONFIG_MMU=y
-CONFIG_ZONE_DMA=y
-CONFIG_QUICKLIST=y
-CONFIG_GENERIC_ISA_DMA=y
-CONFIG_GENERIC_IOMAP=y
-CONFIG_GENERIC_BUG=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_ARCH_MAY_HAVE_PC_FDC=y
-CONFIG_DMI=y
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-
-#
-# General setup
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_LOCK_KERNEL=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_LOCALVERSION=""
-CONFIG_LOCALVERSION_AUTO=y
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-# CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_TASKSTATS is not set
-# CONFIG_USER_NS is not set
-CONFIG_AUDIT=y
-CONFIG_AUDITSYSCALL=y
-# CONFIG_IKCONFIG is not set
-CONFIG_LOG_BUF_SHIFT=15
-# CONFIG_CPUSETS is not set
-# CONFIG_SYSFS_DEPRECATED is not set
-# CONFIG_RELAY is not set
-# CONFIG_BLK_DEV_INITRD is not set
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_SYSCTL=y
-# CONFIG_EMBEDDED is not set
-CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_ALL is not set
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
-CONFIG_HOTPLUG=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_ANON_INODES=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
-# CONFIG_SLOB is not set
-CONFIG_RT_MUTEXES=y
-# CONFIG_TINY_SHMEM is not set
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
-CONFIG_STOP_MACHINE=y
-CONFIG_BLOCK=y
-# CONFIG_LBD is not set
-# CONFIG_BLK_DEV_IO_TRACE is not set
-# CONFIG_LSF is not set
-# CONFIG_BLK_DEV_BSG is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_AS is not set
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-
-#
-# Processor type and features
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-CONFIG_SMP=y
-CONFIG_X86_PC=y
-# CONFIG_X86_ELAN is not set
-# CONFIG_X86_VOYAGER is not set
-# CONFIG_X86_NUMAQ is not set
-# CONFIG_X86_SUMMIT is not set
-# CONFIG_X86_BIGSMP is not set
-# CONFIG_X86_VISWS is not set
-# CONFIG_X86_GENERICARCH is not set
-# CONFIG_X86_ES7000 is not set
-# CONFIG_PARAVIRT is not set
-# CONFIG_M386 is not set
-# CONFIG_M486 is not set
-# CONFIG_M586 is not set
-# CONFIG_M586TSC is not set
-# CONFIG_M586MMX is not set
-# CONFIG_M686 is not set
-# CONFIG_MPENTIUMII is not set
-# CONFIG_MPENTIUMIII is not set
-# CONFIG_MPENTIUMM is not set
-CONFIG_MCORE2=y
-# CONFIG_MPENTIUM4 is not set
-# CONFIG_MK6 is not set
-# CONFIG_MK7 is not set
-# CONFIG_MK8 is not set
-# CONFIG_MCRUSOE is not set
-# CONFIG_MEFFICEON is not set
-# CONFIG_MWINCHIPC6 is not set
-# CONFIG_MWINCHIP2 is not set
-# CONFIG_MWINCHIP3D is not set
-# CONFIG_MGEODEGX1 is not set
-# CONFIG_MGEODE_LX is not set
-# CONFIG_MCYRIXIII is not set
-# CONFIG_MVIAC3_2 is not set
-# CONFIG_MVIAC7 is not set
-# CONFIG_X86_GENERIC is not set
-CONFIG_X86_CMPXCHG=y
-CONFIG_X86_L1_CACHE_SHIFT=6
-CONFIG_X86_XADD=y
-CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-# CONFIG_ARCH_HAS_ILOG2_U32 is not set
-# CONFIG_ARCH_HAS_ILOG2_U64 is not set
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_X86_WP_WORKS_OK=y
-CONFIG_X86_INVLPG=y
-CONFIG_X86_BSWAP=y
-CONFIG_X86_POPAD_OK=y
-CONFIG_X86_GOOD_APIC=y
-CONFIG_X86_INTEL_USERCOPY=y
-CONFIG_X86_USE_PPRO_CHECKSUM=y
-CONFIG_X86_TSC=y
-CONFIG_X86_MINIMUM_CPU_FAMILY=4
-CONFIG_HPET_TIMER=y
-CONFIG_HPET_EMULATE_RTC=y
-CONFIG_NR_CPUS=2
-# CONFIG_SCHED_SMT is not set
-CONFIG_SCHED_MC=y
-# CONFIG_PREEMPT_NONE is not set
-# CONFIG_PREEMPT_VOLUNTARY is not set
-CONFIG_PREEMPT=y
-CONFIG_PREEMPT_BKL=y
-CONFIG_X86_LOCAL_APIC=y
-CONFIG_X86_IO_APIC=y
-CONFIG_X86_MCE=y
-# CONFIG_X86_MCE_NONFATAL is not set
-# CONFIG_X86_MCE_P4THERMAL is not set
-CONFIG_VM86=y
-# CONFIG_TOSHIBA is not set
-# CONFIG_I8K is not set
-# CONFIG_X86_REBOOTFIXUPS is not set
-# CONFIG_MICROCODE is not set
-# CONFIG_X86_MSR is not set
-# CONFIG_X86_CPUID is not set
-
-#
-# Firmware Drivers
-#
-# CONFIG_EDD is not set
-# CONFIG_DELL_RBU is not set
-# CONFIG_DCDBAS is not set
-CONFIG_DMIID=y
-# CONFIG_NOHIGHMEM is not set
-CONFIG_HIGHMEM4G=y
-# CONFIG_HIGHMEM64G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_HIGHMEM=y
-CONFIG_ARCH_FLATMEM_ENABLE=y
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_ARCH_SELECT_MEMORY_MODEL=y
-CONFIG_ARCH_POPULATES_NODE_MAP=y
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
-# CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_SPARSEMEM_STATIC=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-# CONFIG_RESOURCES_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=1
-CONFIG_BOUNCE=y
-CONFIG_NR_QUICK=1
-CONFIG_VIRT_TO_BUS=y
-CONFIG_HIGHPTE=y
-# CONFIG_MATH_EMULATION is not set
-CONFIG_MTRR=y
-# CONFIG_EFI is not set
-# CONFIG_IRQBALANCE is not set
-CONFIG_SECCOMP=y
-# CONFIG_HZ_100 is not set
-# CONFIG_HZ_250 is not set
-CONFIG_HZ_300=y
-# CONFIG_HZ_1000 is not set
-CONFIG_HZ=300
-# CONFIG_KEXEC is not set
-# CONFIG_CRASH_DUMP is not set
-CONFIG_PHYSICAL_START=0x100000
-# CONFIG_RELOCATABLE is not set
-CONFIG_PHYSICAL_ALIGN=0x100000
-CONFIG_HOTPLUG_CPU=y
-# CONFIG_COMPAT_VDSO is not set
-CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-
-#
-# Power management options (ACPI, APM)
-#
-CONFIG_PM=y
-# CONFIG_PM_LEGACY is not set
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP_SMP=y
-CONFIG_PM_SLEEP=y
-CONFIG_SUSPEND_SMP_POSSIBLE=y
-CONFIG_SUSPEND=y
-CONFIG_HIBERNATION_SMP_POSSIBLE=y
-CONFIG_HIBERNATION=y
-CONFIG_PM_STD_PARTITION="/dev/sda5"
-CONFIG_TOI_CORE=y
-
-#
-# Image Storage (you need at least one allocator)
-#
-CONFIG_TOI_FILE=y
-CONFIG_TOI_SWAP=y
-
-#
-# General Options
-#
-CONFIG_TOI_CRYPTO=y
-CONFIG_TOI_USERUI=y
-CONFIG_TOI_USERUI_DEFAULT_PATH="/usr/local/sbin/tuxonice_fbsplash"
-# CONFIG_TOI_KEEP_IMAGE is not set
-CONFIG_TOI_REPLACE_SWSUSP=y
-CONFIG_TOI_CHECKSUM=y
-CONFIG_TOI_DEFAULT_WAIT=25
-# CONFIG_TOI_PAGEFLAGS_TEST is not set
-CONFIG_TOI=y
-CONFIG_ACPI=y
-CONFIG_ACPI_SLEEP=y
-CONFIG_ACPI_PROCFS=y
-CONFIG_ACPI_PROC_EVENT=y
-CONFIG_ACPI_AC=y
-CONFIG_ACPI_BATTERY=y
-CONFIG_ACPI_BUTTON=y
-CONFIG_ACPI_FAN=y
-CONFIG_ACPI_DOCK=y
-CONFIG_ACPI_BAY=y
-CONFIG_ACPI_PROCESSOR=y
-CONFIG_ACPI_HOTPLUG_CPU=y
-CONFIG_ACPI_THERMAL=y
-# CONFIG_ACPI_ASUS is not set
-# CONFIG_ACPI_TOSHIBA is not set
-CONFIG_ACPI_BLACKLIST_YEAR=0
-# CONFIG_ACPI_DEBUG is not set
-CONFIG_ACPI_EC=y
-CONFIG_ACPI_POWER=y
-CONFIG_ACPI_SYSTEM=y
-CONFIG_X86_PM_TIMER=y
-CONFIG_ACPI_CONTAINER=y
-# CONFIG_ACPI_SBS is not set
-# CONFIG_APM is not set
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_TABLE=y
-# CONFIG_CPU_FREQ_DEBUG is not set
-CONFIG_CPU_FREQ_STAT=y
-CONFIG_CPU_FREQ_STAT_DETAILS=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
-
-#
-# CPUFreq processor drivers
-#
-CONFIG_X86_ACPI_CPUFREQ=y
-# CONFIG_X86_POWERNOW_K6 is not set
-# CONFIG_X86_POWERNOW_K7 is not set
-# CONFIG_X86_POWERNOW_K8 is not set
-# CONFIG_X86_GX_SUSPMOD is not set
-CONFIG_X86_SPEEDSTEP_CENTRINO=y
-CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y
-# CONFIG_X86_SPEEDSTEP_ICH is not set
-# CONFIG_X86_SPEEDSTEP_SMI is not set
-# CONFIG_X86_P4_CLOCKMOD is not set
-# CONFIG_X86_CPUFREQ_NFORCE2 is not set
-# CONFIG_X86_LONGRUN is not set
-# CONFIG_X86_LONGHAUL is not set
-# CONFIG_X86_E_POWERSAVER is not set
-
-#
-# shared options
-#
-# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
-# CONFIG_X86_SPEEDSTEP_LIB is not set
-
-#
-# CPU idle PM support
-#
-CONFIG_CPU_IDLE=y
-
-#
-# Governors
-#
-CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_IDLE_GOV_MENU=y
-
-#
-# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
-#
-CONFIG_PCI=y
-# CONFIG_PCI_GOBIOS is not set
-# CONFIG_PCI_GOMMCONFIG is not set
-# CONFIG_PCI_GODIRECT is not set
-CONFIG_PCI_GOANY=y
-CONFIG_PCI_BIOS=y
-CONFIG_PCI_DIRECT=y
-CONFIG_PCI_MMCONFIG=y
-CONFIG_PCIEPORTBUS=y
-CONFIG_HOTPLUG_PCI_PCIE=y
-# CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set
-CONFIG_PCIEAER=y
-CONFIG_ARCH_SUPPORTS_MSI=y
-CONFIG_PCI_MSI=y
-# CONFIG_PCI_DEBUG is not set
-CONFIG_HT_IRQ=y
-CONFIG_ISA_DMA_API=y
-CONFIG_ISA=y
-# CONFIG_EISA is not set
-# CONFIG_MCA is not set
-# CONFIG_SCx200 is not set
-
-#
-# PCCARD (PCMCIA/CardBus) support
-#
-CONFIG_PCCARD=y
-# CONFIG_PCMCIA_DEBUG is not set
-CONFIG_PCMCIA=y
-CONFIG_PCMCIA_LOAD_CIS=y
-CONFIG_PCMCIA_IOCTL=y
-CONFIG_CARDBUS=y
-
-#
-# PC-card bridges
-#
-CONFIG_YENTA=y
-CONFIG_YENTA_O2=y
-CONFIG_YENTA_RICOH=y
-CONFIG_YENTA_TI=y
-CONFIG_YENTA_ENE_TUNE=y
-CONFIG_YENTA_TOSHIBA=y
-# CONFIG_PD6729 is not set
-# CONFIG_I82092 is not set
-# CONFIG_I82365 is not set
-# CONFIG_TCIC is not set
-CONFIG_PCMCIA_PROBE=y
-CONFIG_PCCARD_NONSTATIC=y
-CONFIG_HOTPLUG_PCI=y
-# CONFIG_HOTPLUG_PCI_FAKE is not set
-# CONFIG_HOTPLUG_PCI_COMPAQ is not set
-CONFIG_HOTPLUG_PCI_IBM=y
-CONFIG_HOTPLUG_PCI_ACPI=y
-CONFIG_HOTPLUG_PCI_ACPI_IBM=y
-# CONFIG_HOTPLUG_PCI_CPCI is not set
-# CONFIG_HOTPLUG_PCI_SHPC is not set
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_BINFMT_AOUT=y
-CONFIG_BINFMT_MISC=y
-
-#
-# Networking
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_PACKET_MMAP=y
-CONFIG_UNIX=y
-CONFIG_XFRM=y
-CONFIG_XFRM_USER=m
-# CONFIG_XFRM_SUB_POLICY is not set
-# CONFIG_XFRM_MIGRATE is not set
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_ASK_IP_FIB_HASH=y
-# CONFIG_IP_FIB_TRIE is not set
-CONFIG_IP_FIB_HASH=y
-# CONFIG_IP_MULTIPLE_TABLES is not set
-# CONFIG_IP_ROUTE_MULTIPATH is not set
-# CONFIG_IP_ROUTE_VERBOSE is not set
-# CONFIG_IP_PNP is not set
-CONFIG_NET_IPIP=y
-# CONFIG_NET_IPGRE is not set
-# CONFIG_IP_MROUTE is not set
-# CONFIG_ARPD is not set
-CONFIG_SYN_COOKIES=y
-# CONFIG_INET_AH is not set
-# CONFIG_INET_ESP is not set
-# CONFIG_INET_IPCOMP is not set
-# CONFIG_INET_XFRM_TUNNEL is not set
-CONFIG_INET_TUNNEL=y
-CONFIG_INET_XFRM_MODE_TRANSPORT=m
-CONFIG_INET_XFRM_MODE_TUNNEL=m
-CONFIG_INET_XFRM_MODE_BEET=m
-CONFIG_INET_DIAG=y
-CONFIG_INET_TCP_DIAG=y
-# CONFIG_TCP_CONG_ADVANCED is not set
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-# CONFIG_IP_VS is not set
-CONFIG_IPV6=y
-# CONFIG_IPV6_PRIVACY is not set
-# CONFIG_IPV6_ROUTER_PREF is not set
-# CONFIG_IPV6_OPTIMISTIC_DAD is not set
-# CONFIG_INET6_AH is not set
-# CONFIG_INET6_ESP is not set
-# CONFIG_INET6_IPCOMP is not set
-CONFIG_IPV6_MIP6=y
-# CONFIG_INET6_XFRM_TUNNEL is not set
-# CONFIG_INET6_TUNNEL is not set
-CONFIG_INET6_XFRM_MODE_TRANSPORT=m
-CONFIG_INET6_XFRM_MODE_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_BEET=m
-CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
-CONFIG_IPV6_SIT=m
-# CONFIG_IPV6_TUNNEL is not set
-# CONFIG_IPV6_MULTIPLE_TABLES is not set
-# CONFIG_NETWORK_SECMARK is not set
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_NETLINK=y
-CONFIG_NETFILTER_NETLINK_QUEUE=y
-CONFIG_NETFILTER_NETLINK_LOG=y
-CONFIG_NF_CONNTRACK_ENABLED=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CT_ACCT=y
-CONFIG_NF_CONNTRACK_MARK=y
-CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NF_CT_PROTO_GRE=m
-CONFIG_NF_CT_PROTO_SCTP=m
-# CONFIG_NF_CT_PROTO_UDPLITE is not set
-# CONFIG_NF_CONNTRACK_AMANDA is not set
-CONFIG_NF_CONNTRACK_FTP=m
-CONFIG_NF_CONNTRACK_H323=m
-CONFIG_NF_CONNTRACK_IRC=m
-CONFIG_NF_CONNTRACK_NETBIOS_NS=m
-CONFIG_NF_CONNTRACK_PPTP=m
-# CONFIG_NF_CONNTRACK_SANE is not set
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NETFILTER_XTABLES=y
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y
-CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-CONFIG_NETFILTER_XT_TARGET_DSCP=m
-CONFIG_NETFILTER_XT_TARGET_MARK=y
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
-CONFIG_NETFILTER_XT_TARGET_TRACE=m
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-CONFIG_NETFILTER_XT_MATCH_COMMENT=y
-CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-CONFIG_NETFILTER_XT_MATCH_DCCP=y
-CONFIG_NETFILTER_XT_MATCH_DSCP=m
-# CONFIG_NETFILTER_XT_MATCH_ESP is not set
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_LENGTH=y
-CONFIG_NETFILTER_XT_MATCH_LIMIT=y
-CONFIG_NETFILTER_XT_MATCH_MAC=y
-CONFIG_NETFILTER_XT_MATCH_MARK=y
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y
-CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-CONFIG_NETFILTER_XT_MATCH_REALM=y
-CONFIG_NETFILTER_XT_MATCH_SCTP=y
-CONFIG_NETFILTER_XT_MATCH_STATE=m
-CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
-CONFIG_NETFILTER_XT_MATCH_STRING=y
-CONFIG_NETFILTER_XT_MATCH_TCPMSS=y
-CONFIG_NETFILTER_XT_MATCH_U32=m
-CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_CONNTRACK_IPV4=m
-# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
-CONFIG_IP_NF_QUEUE=y
-CONFIG_IP_NF_IPTABLES=y
-CONFIG_IP_NF_MATCH_IPRANGE=y
-CONFIG_IP_NF_MATCH_TOS=y
-CONFIG_IP_NF_MATCH_RECENT=y
-CONFIG_IP_NF_MATCH_ECN=y
-# CONFIG_IP_NF_MATCH_AH is not set
-CONFIG_IP_NF_MATCH_TTL=y
-CONFIG_IP_NF_MATCH_OWNER=y
-CONFIG_IP_NF_MATCH_ADDRTYPE=y
-CONFIG_IP_NF_FILTER=y
-CONFIG_IP_NF_TARGET_REJECT=y
-CONFIG_IP_NF_TARGET_LOG=y
-CONFIG_IP_NF_TARGET_ULOG=y
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_NEEDED=y
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_SAME=m
-CONFIG_NF_NAT_SNMP_BASIC=m
-CONFIG_NF_NAT_PROTO_GRE=m
-CONFIG_NF_NAT_FTP=m
-CONFIG_NF_NAT_IRC=m
-CONFIG_NF_NAT_TFTP=m
-# CONFIG_NF_NAT_AMANDA is not set
-CONFIG_NF_NAT_PPTP=m
-CONFIG_NF_NAT_H323=m
-CONFIG_NF_NAT_SIP=m
-CONFIG_IP_NF_MANGLE=y
-CONFIG_IP_NF_TARGET_TOS=y
-CONFIG_IP_NF_TARGET_ECN=y
-CONFIG_IP_NF_TARGET_TTL=y
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_RAW=y
-CONFIG_IP_NF_ARPTABLES=y
-CONFIG_IP_NF_ARPFILTER=y
-CONFIG_IP_NF_ARP_MANGLE=y
-
-#
-# IPv6: Netfilter Configuration (EXPERIMENTAL)
-#
-CONFIG_NF_CONNTRACK_IPV6=m
-CONFIG_IP6_NF_QUEUE=y
-CONFIG_IP6_NF_IPTABLES=y
-CONFIG_IP6_NF_MATCH_RT=y
-CONFIG_IP6_NF_MATCH_OPTS=y
-CONFIG_IP6_NF_MATCH_FRAG=y
-CONFIG_IP6_NF_MATCH_HL=y
-CONFIG_IP6_NF_MATCH_OWNER=y
-CONFIG_IP6_NF_MATCH_IPV6HEADER=y
-# CONFIG_IP6_NF_MATCH_AH is not set
-CONFIG_IP6_NF_MATCH_MH=m
-CONFIG_IP6_NF_MATCH_EUI64=y
-CONFIG_IP6_NF_FILTER=y
-CONFIG_IP6_NF_TARGET_LOG=y
-CONFIG_IP6_NF_TARGET_REJECT=y
-CONFIG_IP6_NF_MANGLE=y
-CONFIG_IP6_NF_TARGET_HL=y
-CONFIG_IP6_NF_RAW=y
-# CONFIG_IP_DCCP is not set
-# CONFIG_IP_SCTP is not set
-# CONFIG_TIPC is not set
-# CONFIG_ATM is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-
-#
-# QoS and/or fair queueing
-#
-CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_FIFO=y
-
-#
-# Queueing/Scheduling
-#
-# CONFIG_NET_SCH_CBQ is not set
-# CONFIG_NET_SCH_HTB is not set
-# CONFIG_NET_SCH_HFSC is not set
-# CONFIG_NET_SCH_PRIO is not set
-# CONFIG_NET_SCH_RR is not set
-# CONFIG_NET_SCH_RED is not set
-# CONFIG_NET_SCH_SFQ is not set
-# CONFIG_NET_SCH_TEQL is not set
-# CONFIG_NET_SCH_TBF is not set
-# CONFIG_NET_SCH_GRED is not set
-# CONFIG_NET_SCH_DSMARK is not set
-# CONFIG_NET_SCH_NETEM is not set
-# CONFIG_NET_SCH_INGRESS is not set
-
-#
-# Classification
-#
-# CONFIG_NET_CLS_BASIC is not set
-# CONFIG_NET_CLS_TCINDEX is not set
-# CONFIG_NET_CLS_ROUTE4 is not set
-CONFIG_NET_CLS_ROUTE=y
-# CONFIG_NET_CLS_FW is not set
-# CONFIG_NET_CLS_U32 is not set
-# CONFIG_NET_CLS_RSVP is not set
-# CONFIG_NET_CLS_RSVP6 is not set
-# CONFIG_NET_EMATCH is not set
-# CONFIG_NET_CLS_ACT is not set
-# CONFIG_NET_CLS_POLICE is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-# CONFIG_BT_BNEP is not set
-CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_HCIUSB=m
-CONFIG_BT_HCIUSB_SCO=y
-# CONFIG_BT_HCIUART is not set
-# CONFIG_BT_HCIBCM203X is not set
-# CONFIG_BT_HCIBPA10X is not set
-# CONFIG_BT_HCIBFUSB is not set
-# CONFIG_BT_HCIDTL1 is not set
-# CONFIG_BT_HCIBT3C is not set
-# CONFIG_BT_HCIBLUECARD is not set
-# CONFIG_BT_HCIBTUART is not set
-# CONFIG_BT_HCIVHCI is not set
-# CONFIG_AF_RXRPC is not set
-
-#
-# Wireless
-#
-CONFIG_CFG80211=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_MAC80211=m
-CONFIG_MAC80211_LEDS=y
-# CONFIG_MAC80211_DEBUG is not set
-CONFIG_IEEE80211=m
-# CONFIG_IEEE80211_DEBUG is not set
-CONFIG_IEEE80211_CRYPT_WEP=m
-CONFIG_IEEE80211_CRYPT_CCMP=m
-CONFIG_IEEE80211_CRYPT_TKIP=m
-# CONFIG_IEEE80211_SOFTMAC is not set
-CONFIG_RFKILL=y
-CONFIG_RFKILL_INPUT=y
-# CONFIG_NET_9P is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=y
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_SYS_HYPERVISOR is not set
-# CONFIG_CONNECTOR is not set
-# CONFIG_MTD is not set
-CONFIG_PARPORT=y
-CONFIG_PARPORT_PC=y
-# CONFIG_PARPORT_SERIAL is not set
-# CONFIG_PARPORT_PC_FIFO is not set
-# CONFIG_PARPORT_PC_SUPERIO is not set
-# CONFIG_PARPORT_PC_PCMCIA is not set
-# CONFIG_PARPORT_GSC is not set
-# CONFIG_PARPORT_AX88796 is not set
-# CONFIG_PARPORT_1284 is not set
-CONFIG_PNP=y
-# CONFIG_PNP_DEBUG is not set
-
-#
-# Protocols
-#
-# CONFIG_ISAPNP is not set
-# CONFIG_PNPBIOS is not set
-CONFIG_PNPACPI=y
-CONFIG_BLK_DEV=y
-# CONFIG_BLK_DEV_FD is not set
-# CONFIG_BLK_DEV_XD is not set
-# CONFIG_PARIDE is not set
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_UMEM is not set
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_CRYPTOLOOP=y
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_SX8 is not set
-# CONFIG_BLK_DEV_UB is not set
-# CONFIG_BLK_DEV_RAM is not set
-# CONFIG_CDROM_PKTCDVD is not set
-# CONFIG_ATA_OVER_ETH is not set
-CONFIG_MISC_DEVICES=y
-# CONFIG_IBM_ASM is not set
-# CONFIG_PHANTOM is not set
-# CONFIG_EEPROM_93CX6 is not set
-# CONFIG_SGI_IOC4 is not set
-# CONFIG_TIFM_CORE is not set
-# CONFIG_ASUS_LAPTOP is not set
-# CONFIG_MSI_LAPTOP is not set
-# CONFIG_SONY_LAPTOP is not set
-CONFIG_THINKPAD_ACPI=m
-# CONFIG_THINKPAD_ACPI_DEBUG is not set
-CONFIG_THINKPAD_ACPI_BAY=y
-CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-# CONFIG_SCSI_TGT is not set
-# CONFIG_SCSI_NETLINK is not set
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CHR_DEV_OSST is not set
-CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
-CONFIG_CHR_DEV_SG=y
-# CONFIG_CHR_DEV_SCH is not set
-
-#
-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-#
-# CONFIG_SCSI_MULTI_LUN is not set
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-# CONFIG_SCSI_SCAN_ASYNC is not set
-CONFIG_SCSI_WAIT_SCAN=m
-
-#
-# SCSI Transports
-#
-# CONFIG_SCSI_SPI_ATTRS is not set
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-# CONFIG_SCSI_SAS_LIBSAS is not set
-# CONFIG_SCSI_LOWLEVEL is not set
-# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
-CONFIG_ATA=y
-# CONFIG_ATA_NONSTANDARD is not set
-CONFIG_ATA_ACPI=y
-CONFIG_SATA_AHCI=y
-# CONFIG_SATA_SVW is not set
-CONFIG_ATA_PIIX=y
-# CONFIG_SATA_MV is not set
-# CONFIG_SATA_NV is not set
-# CONFIG_PDC_ADMA is not set
-# CONFIG_SATA_QSTOR is not set
-# CONFIG_SATA_PROMISE is not set
-# CONFIG_SATA_SX4 is not set
-# CONFIG_SATA_SIL is not set
-# CONFIG_SATA_SIL24 is not set
-# CONFIG_SATA_SIS is not set
-# CONFIG_SATA_ULI is not set
-# CONFIG_SATA_VIA is not set
-# CONFIG_SATA_VITESSE is not set
-# CONFIG_SATA_INIC162X is not set
-# CONFIG_PATA_ALI is not set
-# CONFIG_PATA_AMD is not set
-# CONFIG_PATA_ARTOP is not set
-# CONFIG_PATA_ATIIXP is not set
-# CONFIG_PATA_CMD640_PCI is not set
-# CONFIG_PATA_CMD64X is not set
-# CONFIG_PATA_CS5520 is not set
-# CONFIG_PATA_CS5530 is not set
-# CONFIG_PATA_CS5535 is not set
-# CONFIG_PATA_CYPRESS is not set
-# CONFIG_PATA_EFAR is not set
-# CONFIG_ATA_GENERIC is not set
-# CONFIG_PATA_HPT366 is not set
-# CONFIG_PATA_HPT37X is not set
-# CONFIG_PATA_HPT3X2N is not set
-# CONFIG_PATA_HPT3X3 is not set
-# CONFIG_PATA_IT821X is not set
-# CONFIG_PATA_IT8213 is not set
-# CONFIG_PATA_JMICRON is not set
-# CONFIG_PATA_LEGACY is not set
-# CONFIG_PATA_TRIFLEX is not set
-# CONFIG_PATA_MARVELL is not set
-# CONFIG_PATA_MPIIX is not set
-# CONFIG_PATA_OLDPIIX is not set
-# CONFIG_PATA_NETCELL is not set
-# CONFIG_PATA_NS87410 is not set
-# CONFIG_PATA_OPTI is not set
-# CONFIG_PATA_OPTIDMA is not set
-# CONFIG_PATA_PCMCIA is not set
-# CONFIG_PATA_PDC_OLD is not set
-# CONFIG_PATA_QDI is not set
-# CONFIG_PATA_RADISYS is not set
-# CONFIG_PATA_RZ1000 is not set
-# CONFIG_PATA_SC1200 is not set
-# CONFIG_PATA_SERVERWORKS is not set
-# CONFIG_PATA_PDC2027X is not set
-# CONFIG_PATA_SIL680 is not set
-# CONFIG_PATA_SIS is not set
-# CONFIG_PATA_VIA is not set
-# CONFIG_PATA_WINBOND is not set
-# CONFIG_PATA_WINBOND_VLB is not set
-# CONFIG_MD is not set
-
-#
-# Fusion MPT device support
-#
-# CONFIG_FUSION is not set
-# CONFIG_FUSION_SPI is not set
-# CONFIG_FUSION_FC is not set
-# CONFIG_FUSION_SAS is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_FIREWIRE is not set
-# CONFIG_IEEE1394 is not set
-# CONFIG_I2O is not set
-# CONFIG_MACINTOSH_DRIVERS is not set
-CONFIG_NETDEVICES=y
-CONFIG_NETDEVICES_MULTIQUEUE=y
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_MACVLAN is not set
-# CONFIG_EQUALIZER is not set
-CONFIG_TUN=y
-# CONFIG_NET_SB1000 is not set
-# CONFIG_ARCNET is not set
-# CONFIG_NET_ETHERNET is not set
-CONFIG_MII=m
-CONFIG_NETDEV_1000=y
-# CONFIG_ACENIC is not set
-# CONFIG_DL2K is not set
-CONFIG_E1000=m
-CONFIG_E1000_NAPI=y
-CONFIG_E1000_DISABLE_PACKET_SPLIT=y
-CONFIG_E1000E=m
-# CONFIG_NS83820 is not set
-# CONFIG_HAMACHI is not set
-# CONFIG_YELLOWFIN is not set
-# CONFIG_R8169 is not set
-# CONFIG_SIS190 is not set
-# CONFIG_SKGE is not set
-# CONFIG_SKY2 is not set
-# CONFIG_SK98LIN is not set
-# CONFIG_VIA_VELOCITY is not set
-# CONFIG_TIGON3 is not set
-# CONFIG_BNX2 is not set
-# CONFIG_QLA3XXX is not set
-# CONFIG_ATL1 is not set
-# CONFIG_NETDEV_10000 is not set
-# CONFIG_TR is not set
-
-#
-# Wireless LAN
-#
-# CONFIG_WLAN_PRE80211 is not set
-CONFIG_WLAN_80211=y
-# CONFIG_PCMCIA_RAYCS is not set
-CONFIG_IPW2100=m
-CONFIG_IPW2100_MONITOR=y
-# CONFIG_IPW2100_DEBUG is not set
-CONFIG_IPW2200=m
-CONFIG_IPW2200_MONITOR=y
-CONFIG_IPW2200_RADIOTAP=y
-CONFIG_IPW2200_PROMISCUOUS=y
-CONFIG_IPW2200_QOS=y
-# CONFIG_IPW2200_DEBUG is not set
-# CONFIG_LIBERTAS is not set
-# CONFIG_AIRO is not set
-# CONFIG_HERMES is not set
-# CONFIG_ATMEL is not set
-# CONFIG_AIRO_CS is not set
-# CONFIG_PCMCIA_WL3501 is not set
-CONFIG_PRISM54=m
-# CONFIG_USB_ZD1201 is not set
-# CONFIG_RTL8187 is not set
-# CONFIG_HOSTAP is not set
-
-#
-# USB Network Adapters
-#
-# CONFIG_USB_CATC is not set
-# CONFIG_USB_KAWETH is not set
-# CONFIG_USB_PEGASUS is not set
-# CONFIG_USB_RTL8150 is not set
-# CONFIG_USB_USBNET_MII is not set
-# CONFIG_USB_USBNET is not set
-CONFIG_NET_PCMCIA=y
-CONFIG_PCMCIA_3C589=m
-CONFIG_PCMCIA_3C574=m
-CONFIG_PCMCIA_FMVJ18X=m
-CONFIG_PCMCIA_PCNET=m
-CONFIG_PCMCIA_NMCLAN=m
-CONFIG_PCMCIA_SMC91C92=m
-CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_PCMCIA_AXNET=m
-# CONFIG_WAN is not set
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PLIP is not set
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-# CONFIG_NET_FC is not set
-# CONFIG_SHAPER is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_ISDN is not set
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-# CONFIG_INPUT_FF_MEMLESS is not set
-# CONFIG_INPUT_POLLDEV is not set
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1400
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1050
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_TSDEV is not set
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-CONFIG_KEYBOARD_ATKBD=y
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_KEYBOARD_STOWAWAY is not set
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=y
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_LIFEBOOK=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-# CONFIG_MOUSE_PS2_TOUCHKIT is not set
-# CONFIG_MOUSE_SERIAL is not set
-# CONFIG_MOUSE_APPLETOUCH is not set
-# CONFIG_MOUSE_INPORT is not set
-# CONFIG_MOUSE_LOGIBM is not set
-# CONFIG_MOUSE_PC110PAD is not set
-# CONFIG_MOUSE_VSXXXAA is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TABLET is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
-CONFIG_INPUT_MISC=y
-# CONFIG_INPUT_PCSPKR is not set
-# CONFIG_INPUT_WISTRON_BTNS is not set
-# CONFIG_INPUT_ATLAS_BTNS is not set
-# CONFIG_INPUT_ATI_REMOTE is not set
-# CONFIG_INPUT_ATI_REMOTE2 is not set
-# CONFIG_INPUT_KEYSPAN_REMOTE is not set
-# CONFIG_INPUT_POWERMATE is not set
-# CONFIG_INPUT_YEALINK is not set
-CONFIG_INPUT_UINPUT=m
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_I8042=y
-# CONFIG_SERIO_SERPORT is not set
-# CONFIG_SERIO_CT82C710 is not set
-# CONFIG_SERIO_PARKBD is not set
-# CONFIG_SERIO_PCIPS2 is not set
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_SERIO_RAW is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-# CONFIG_VT_HW_CONSOLE_BINDING is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-# CONFIG_SERIAL_8250_CONSOLE is not set
-CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_SERIAL_8250_PCI=y
-CONFIG_SERIAL_8250_PNP=y
-CONFIG_SERIAL_8250_CS=m
-CONFIG_SERIAL_8250_NR_UARTS=4
-CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-# CONFIG_SERIAL_8250_EXTENDED is not set
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_CORE=y
-# CONFIG_SERIAL_JSM is not set
-CONFIG_UNIX98_PTYS=y
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=256
-# CONFIG_PRINTER is not set
-# CONFIG_PPDEV is not set
-# CONFIG_TIPAR is not set
-# CONFIG_IPMI_HANDLER is not set
-# CONFIG_WATCHDOG is not set
-# CONFIG_HW_RANDOM is not set
-CONFIG_NVRAM=y
-CONFIG_RTC=y
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-# CONFIG_SONYPI is not set
-# CONFIG_AGP is not set
-# CONFIG_DRM is not set
-
-#
-# PCMCIA character devices
-#
-# CONFIG_SYNCLINK_CS is not set
-# CONFIG_CARDMAN_4000 is not set
-# CONFIG_CARDMAN_4040 is not set
-# CONFIG_MWAVE is not set
-# CONFIG_PC8736x_GPIO is not set
-# CONFIG_NSC_GPIO is not set
-# CONFIG_CS5535_GPIO is not set
-# CONFIG_RAW_DRIVER is not set
-CONFIG_HPET=y
-# CONFIG_HPET_RTC_IRQ is not set
-CONFIG_HPET_MMAP=y
-# CONFIG_HANGCHECK_TIMER is not set
-# CONFIG_TCG_TPM is not set
-# CONFIG_TELCLOCK is not set
-CONFIG_DEVPORT=y
-CONFIG_I2C=m
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_CHARDEV=m
-
-#
-# I2C Algorithms
-#
-CONFIG_I2C_ALGOBIT=m
-CONFIG_I2C_ALGOPCF=m
-CONFIG_I2C_ALGOPCA=m
-
-#
-# I2C Hardware Bus support
-#
-# CONFIG_I2C_ALI1535 is not set
-# CONFIG_I2C_ALI1563 is not set
-# CONFIG_I2C_ALI15X3 is not set
-# CONFIG_I2C_AMD756 is not set
-# CONFIG_I2C_AMD8111 is not set
-# CONFIG_I2C_I801 is not set
-# CONFIG_I2C_I810 is not set
-# CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_NFORCE2 is not set
-# CONFIG_I2C_OCORES is not set
-# CONFIG_I2C_PARPORT is not set
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_PROSAVAGE is not set
-# CONFIG_I2C_SAVAGE4 is not set
-# CONFIG_I2C_SIMTEC is not set
-# CONFIG_SCx200_ACB is not set
-# CONFIG_I2C_SIS5595 is not set
-# CONFIG_I2C_SIS630 is not set
-# CONFIG_I2C_SIS96X is not set
-# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_TINY_USB is not set
-# CONFIG_I2C_VIA is not set
-# CONFIG_I2C_VIAPRO is not set
-# CONFIG_I2C_VOODOO3 is not set
-# CONFIG_I2C_PCA_ISA is not set
-
-#
-# Miscellaneous I2C Chip support
-#
-# CONFIG_SENSORS_DS1337 is not set
-# CONFIG_SENSORS_DS1374 is not set
-# CONFIG_DS1682 is not set
-# CONFIG_SENSORS_EEPROM is not set
-# CONFIG_SENSORS_PCF8574 is not set
-# CONFIG_SENSORS_PCA9539 is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_SENSORS_MAX6875 is not set
-# CONFIG_SENSORS_TSL2550 is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
-
-#
-# SPI support
-#
-# CONFIG_SPI is not set
-# CONFIG_SPI_MASTER is not set
-# CONFIG_W1 is not set
-# CONFIG_POWER_SUPPLY is not set
-CONFIG_HWMON=y
-# CONFIG_HWMON_VID is not set
-# CONFIG_SENSORS_ABITUGURU is not set
-# CONFIG_SENSORS_ABITUGURU3 is not set
-# CONFIG_SENSORS_AD7418 is not set
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1029 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ADM9240 is not set
-# CONFIG_SENSORS_K8TEMP is not set
-# CONFIG_SENSORS_ASB100 is not set
-# CONFIG_SENSORS_ATXP1 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_F71805F is not set
-# CONFIG_SENSORS_FSCHER is not set
-# CONFIG_SENSORS_FSCPOS is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-CONFIG_SENSORS_CORETEMP=y
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-# CONFIG_SENSORS_LM93 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_MAX6650 is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_PC87427 is not set
-# CONFIG_SENSORS_SIS5595 is not set
-# CONFIG_SENSORS_DME1737 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_SMSC47M192 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_THMC50 is not set
-# CONFIG_SENSORS_VIA686A is not set
-# CONFIG_SENSORS_VT1211 is not set
-# CONFIG_SENSORS_VT8231 is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83791D is not set
-# CONFIG_SENSORS_W83792D is not set
-# CONFIG_SENSORS_W83793 is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83627HF is not set
-# CONFIG_SENSORS_W83627EHF is not set
-CONFIG_SENSORS_HDAPS=m
-# CONFIG_SENSORS_APPLESMC is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Multifunction device drivers
-#
-# CONFIG_MFD_SM501 is not set
-
-#
-# Multimedia devices
-#
-CONFIG_VIDEO_DEV=m
-CONFIG_VIDEO_V4L1=y
-CONFIG_VIDEO_V4L1_COMPAT=y
-CONFIG_VIDEO_V4L2=y
-CONFIG_VIDEO_CAPTURE_DRIVERS=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
-CONFIG_VIDEO_TVAUDIO=m
-CONFIG_VIDEO_TDA7432=m
-CONFIG_VIDEO_TDA9840=m
-CONFIG_VIDEO_TDA9875=m
-CONFIG_VIDEO_TEA6415C=m
-CONFIG_VIDEO_TEA6420=m
-CONFIG_VIDEO_MSP3400=m
-CONFIG_VIDEO_WM8775=m
-CONFIG_VIDEO_BT819=m
-CONFIG_VIDEO_BT856=m
-CONFIG_VIDEO_KS0127=m
-CONFIG_VIDEO_OV7670=m
-CONFIG_VIDEO_SAA7110=m
-CONFIG_VIDEO_SAA7111=m
-CONFIG_VIDEO_SAA7114=m
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_TVP5150=m
-CONFIG_VIDEO_VPX3220=m
-CONFIG_VIDEO_CX25840=m
-CONFIG_VIDEO_CX2341X=m
-CONFIG_VIDEO_SAA7185=m
-CONFIG_VIDEO_ADV7170=m
-CONFIG_VIDEO_ADV7175=m
-CONFIG_VIDEO_VIVI=m
-CONFIG_VIDEO_BT848=m
-# CONFIG_VIDEO_BT848_DVB is not set
-CONFIG_VIDEO_SAA6588=m
-CONFIG_VIDEO_PMS=m
-CONFIG_VIDEO_BWQCAM=m
-CONFIG_VIDEO_CQCAM=m
-CONFIG_VIDEO_CPIA=m
-CONFIG_VIDEO_CPIA_USB=m
-CONFIG_VIDEO_CPIA2=m
-CONFIG_VIDEO_SAA5246A=m
-CONFIG_VIDEO_SAA5249=m
-CONFIG_TUNER_3036=m
-# CONFIG_TUNER_TEA5761 is not set
-CONFIG_VIDEO_STRADIS=m
-CONFIG_VIDEO_ZORAN_ZR36060=m
-CONFIG_VIDEO_ZORAN=m
-CONFIG_VIDEO_ZORAN_BUZ=m
-CONFIG_VIDEO_ZORAN_DC10=m
-CONFIG_VIDEO_ZORAN_DC30=m
-CONFIG_VIDEO_ZORAN_LML33=m
-CONFIG_VIDEO_ZORAN_LML33R10=m
-CONFIG_VIDEO_ZORAN_AVS6EYES=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_DVB=m
-CONFIG_VIDEO_MXB=m
-CONFIG_VIDEO_DPC=m
-CONFIG_VIDEO_HEXIUM_ORION=m
-CONFIG_VIDEO_HEXIUM_GEMINI=m
-CONFIG_VIDEO_CX88=m
-CONFIG_VIDEO_CX88_BLACKBIRD=m
-CONFIG_VIDEO_CX88_DVB=m
-CONFIG_VIDEO_CX88_VP3054=m
-# CONFIG_VIDEO_IVTV is not set
-CONFIG_VIDEO_CAFE_CCIC=m
-CONFIG_V4L_USB_DRIVERS=y
-CONFIG_VIDEO_PVRUSB2=m
-CONFIG_VIDEO_PVRUSB2_29XXX=y
-CONFIG_VIDEO_PVRUSB2_24XXX=y
-CONFIG_VIDEO_PVRUSB2_SYSFS=y
-# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_USBVISION=m
-CONFIG_VIDEO_USBVIDEO=m
-CONFIG_USB_VICAM=m
-CONFIG_USB_IBMCAM=m
-CONFIG_USB_KONICAWC=m
-CONFIG_USB_QUICKCAM_MESSENGER=m
-CONFIG_USB_ET61X251=m
-CONFIG_VIDEO_OVCAMCHIP=m
-CONFIG_USB_W9968CF=m
-CONFIG_USB_OV511=m
-CONFIG_USB_SE401=m
-CONFIG_USB_SN9C102=m
-CONFIG_USB_STV680=m
-CONFIG_USB_ZC0301=m
-CONFIG_USB_PWC=m
-# CONFIG_USB_PWC_DEBUG is not set
-CONFIG_USB_ZR364XX=m
-# CONFIG_RADIO_ADAPTERS is not set
-CONFIG_DVB_CORE=m
-CONFIG_DVB_CORE_ATTACH=y
-CONFIG_DVB_CAPTURE_DRIVERS=y
-
-#
-# Supported SAA7146 based PCI Adapters
-#
-# CONFIG_DVB_AV7110 is not set
-# CONFIG_DVB_BUDGET is not set
-# CONFIG_DVB_BUDGET_CI is not set
-# CONFIG_DVB_BUDGET_AV is not set
-
-#
-# Supported USB Adapters
-#
-CONFIG_DVB_USB=m
-# CONFIG_DVB_USB_DEBUG is not set
-CONFIG_DVB_USB_A800=m
-CONFIG_DVB_USB_DIBUSB_MB=m
-# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
-CONFIG_DVB_USB_DIBUSB_MC=m
-CONFIG_DVB_USB_DIB0700=m
-CONFIG_DVB_USB_UMT_010=m
-CONFIG_DVB_USB_CXUSB=m
-CONFIG_DVB_USB_M920X=m
-CONFIG_DVB_USB_GL861=m
-CONFIG_DVB_USB_AU6610=m
-CONFIG_DVB_USB_DIGITV=m
-CONFIG_DVB_USB_VP7045=m
-CONFIG_DVB_USB_VP702X=m
-CONFIG_DVB_USB_GP8PSK=m
-CONFIG_DVB_USB_NOVA_T_USB2=m
-CONFIG_DVB_USB_TTUSB2=m
-CONFIG_DVB_USB_DTT200U=m
-CONFIG_DVB_USB_OPERA1=m
-CONFIG_DVB_USB_AF9005=m
-CONFIG_DVB_USB_AF9005_REMOTE=m
-CONFIG_DVB_TTUSB_BUDGET=m
-CONFIG_DVB_TTUSB_DEC=m
-CONFIG_DVB_CINERGYT2=m
-# CONFIG_DVB_CINERGYT2_TUNING is not set
-
-#
-# Supported FlexCopII (B2C2) Adapters
-#
-CONFIG_DVB_B2C2_FLEXCOP=m
-CONFIG_DVB_B2C2_FLEXCOP_PCI=m
-CONFIG_DVB_B2C2_FLEXCOP_USB=m
-# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
-
-#
-# Supported BT878 Adapters
-#
-CONFIG_DVB_BT8XX=m
-
-#
-# Supported Pluto2 Adapters
-#
-CONFIG_DVB_PLUTO2=m
-
-#
-# Supported DVB Frontends
-#
-
-#
-# Customise DVB Frontends
-#
-# CONFIG_DVB_FE_CUSTOMISE is not set
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_STV0299=m
-CONFIG_DVB_CX24110=m
-CONFIG_DVB_CX24123=m
-CONFIG_DVB_TDA8083=m
-CONFIG_DVB_MT312=m
-CONFIG_DVB_VES1X93=m
-CONFIG_DVB_S5H1420=m
-CONFIG_DVB_TDA10086=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-CONFIG_DVB_SP8870=m
-CONFIG_DVB_SP887X=m
-CONFIG_DVB_CX22700=m
-CONFIG_DVB_CX22702=m
-CONFIG_DVB_L64781=m
-CONFIG_DVB_TDA1004X=m
-CONFIG_DVB_NXT6000=m
-CONFIG_DVB_MT352=m
-CONFIG_DVB_ZL10353=m
-CONFIG_DVB_DIB3000MB=m
-CONFIG_DVB_DIB3000MC=m
-CONFIG_DVB_DIB7000M=m
-CONFIG_DVB_DIB7000P=m
-
-#
-# DVB-C (cable) frontends
-#
-CONFIG_DVB_VES1820=m
-CONFIG_DVB_TDA10021=m
-CONFIG_DVB_TDA10023=m
-CONFIG_DVB_STV0297=m
-
-#
-# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
-#
-CONFIG_DVB_NXT200X=m
-CONFIG_DVB_OR51211=m
-CONFIG_DVB_OR51132=m
-CONFIG_DVB_BCM3510=m
-CONFIG_DVB_LGDT330X=m
-
-#
-# Tuners/PLL support
-#
-CONFIG_DVB_PLL=m
-CONFIG_DVB_TDA826X=m
-CONFIG_DVB_TDA827X=m
-CONFIG_DVB_TUNER_QT1010=m
-CONFIG_DVB_TUNER_MT2060=m
-
-#
-# Miscellaneous devices
-#
-CONFIG_DVB_LNBP21=m
-CONFIG_DVB_ISL6421=m
-CONFIG_DVB_TUA6100=m
-CONFIG_VIDEO_SAA7146=m
-CONFIG_VIDEO_SAA7146_VV=m
-CONFIG_VIDEO_TUNER=m
-CONFIG_VIDEO_BUF=m
-CONFIG_VIDEO_BUF_DVB=m
-CONFIG_VIDEO_BTCX=m
-CONFIG_VIDEO_IR_I2C=m
-CONFIG_VIDEO_IR=m
-CONFIG_VIDEO_TVEEPROM=m
-# CONFIG_DAB is not set
-
-#
-# Graphics support
-#
-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=m
-# CONFIG_BACKLIGHT_PROGEAR is not set
-
-#
-# Display device support
-#
-# CONFIG_DISPLAY_SUPPORT is not set
-# CONFIG_VGASTATE is not set
-# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-# CONFIG_FB is not set
-
-#
-# Console display driver support
-#
-CONFIG_VGA_CONSOLE=y
-# CONFIG_VGACON_SOFT_SCROLLBACK is not set
-# CONFIG_VIDEO_SELECT is not set
-# CONFIG_MDA_CONSOLE is not set
-CONFIG_DUMMY_CONSOLE=y
-
-#
-# Sound
-#
-CONFIG_SOUND=y
-
-#
-# Advanced Linux Sound Architecture
-#
-# CONFIG_SND is not set
-
-#
-# Open Sound System
-#
-# CONFIG_SOUND_PRIME is not set
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=y
-# CONFIG_HID_DEBUG is not set
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=y
-# CONFIG_USB_HIDINPUT_POWERBOOK is not set
-# CONFIG_HID_FF is not set
-CONFIG_USB_HIDDEV=y
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB_ARCH_HAS_EHCI=y
-CONFIG_USB=y
-# CONFIG_USB_DEBUG is not set
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-CONFIG_USB_DEVICE_CLASS=y
-# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_SUSPEND=y
-# CONFIG_USB_PERSIST is not set
-# CONFIG_USB_OTG is not set
-
-#
-# USB Host Controller Drivers
-#
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_SPLIT_ISO=y
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-CONFIG_USB_EHCI_TT_NEWSCHED=y
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_OHCI_HCD is not set
-CONFIG_USB_UHCI_HCD=m
-# CONFIG_USB_SL811_HCD is not set
-# CONFIG_USB_R8A66597_HCD is not set
-
-#
-# USB Device Class drivers
-#
-# CONFIG_USB_ACM is not set
-CONFIG_USB_PRINTER=y
-
-#
-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-#
-
-#
-# may also be needed; see USB_STORAGE Help for more information
-#
-CONFIG_USB_STORAGE=y
-# CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
-# CONFIG_USB_STORAGE_FREECOM is not set
-# CONFIG_USB_STORAGE_DPCM is not set
-# CONFIG_USB_STORAGE_USBAT is not set
-# CONFIG_USB_STORAGE_SDDR09 is not set
-# CONFIG_USB_STORAGE_SDDR55 is not set
-# CONFIG_USB_STORAGE_JUMPSHOT is not set
-# CONFIG_USB_STORAGE_ALAUDA is not set
-# CONFIG_USB_STORAGE_KARMA is not set
-# CONFIG_USB_LIBUSUAL is not set
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-# CONFIG_USB_MON is not set
-
-#
-# USB port drivers
-#
-# CONFIG_USB_USS720 is not set
-
-#
-# USB Serial Converter support
-#
-# CONFIG_USB_SERIAL is not set
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
-# CONFIG_USB_ADUTUX is not set
-# CONFIG_USB_AUERSWALD is not set
-# CONFIG_USB_RIO500 is not set
-# CONFIG_USB_LEGOTOWER is not set
-# CONFIG_USB_LCD is not set
-# CONFIG_USB_BERRY_CHARGE is not set
-# CONFIG_USB_LED is not set
-# CONFIG_USB_CYPRESS_CY7C63 is not set
-# CONFIG_USB_CYTHERM is not set
-# CONFIG_USB_PHIDGET is not set
-# CONFIG_USB_IDMOUSE is not set
-# CONFIG_USB_FTDI_ELAN is not set
-# CONFIG_USB_APPLEDISPLAY is not set
-# CONFIG_USB_SISUSBVGA is not set
-# CONFIG_USB_LD is not set
-# CONFIG_USB_TRANCEVIBRATOR is not set
-# CONFIG_USB_IOWARRIOR is not set
-# CONFIG_USB_TEST is not set
-
-#
-# USB DSL modem support
-#
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-# CONFIG_MMC is not set
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
-
-#
-# LED drivers
-#
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-# CONFIG_INFINIBAND is not set
-# CONFIG_EDAC is not set
-CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-# CONFIG_RTC_DRV_DS1307 is not set
-# CONFIG_RTC_DRV_DS1672 is not set
-# CONFIG_RTC_DRV_MAX6900 is not set
-# CONFIG_RTC_DRV_RS5C372 is not set
-# CONFIG_RTC_DRV_ISL1208 is not set
-# CONFIG_RTC_DRV_X1205 is not set
-# CONFIG_RTC_DRV_PCF8563 is not set
-# CONFIG_RTC_DRV_PCF8583 is not set
-# CONFIG_RTC_DRV_M41T80 is not set
-
-#
-# SPI RTC drivers
-#
-
-#
-# Platform RTC drivers
-#
-# CONFIG_RTC_DRV_CMOS is not set
-# CONFIG_RTC_DRV_DS1553 is not set
-# CONFIG_RTC_DRV_STK17TA8 is not set
-# CONFIG_RTC_DRV_DS1742 is not set
-# CONFIG_RTC_DRV_M48T86 is not set
-# CONFIG_RTC_DRV_M48T59 is not set
-# CONFIG_RTC_DRV_V3020 is not set
-
-#
-# on-CPU RTC drivers
-#
-
-#
-# DMA Engine support
-#
-# CONFIG_DMA_ENGINE is not set
-
-#
-# DMA Clients
-#
-
-#
-# DMA Devices
-#
-CONFIG_AUXDISPLAY=y
-# CONFIG_KS0108 is not set
-# CONFIG_VIRTUALIZATION is not set
-
-#
-# Userspace I/O
-#
-# CONFIG_UIO is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=y
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-CONFIG_EXT2_FS_XIP=y
-CONFIG_FS_XIP=y
-CONFIG_EXT3_FS=y
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-# CONFIG_EXT4DEV_FS is not set
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
-CONFIG_FS_POSIX_ACL=y
-CONFIG_XFS_FS=m
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_SECURITY=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_RT=y
-# CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_ROMFS_FS is not set
-CONFIG_INOTIFY=y
-CONFIG_INOTIFY_USER=y
-# CONFIG_QUOTA is not set
-CONFIG_QUOTACTL=y
-CONFIG_DNOTIFY=y
-# CONFIG_AUTOFS_FS is not set
-CONFIG_AUTOFS4_FS=y
-CONFIG_FUSE_FS=y
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=y
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=y
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=850
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-15"
-CONFIG_NTFS_FS=y
-# CONFIG_NTFS_DEBUG is not set
-# CONFIG_NTFS_RW is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_KCORE=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-# CONFIG_TMPFS_POSIX_ACL is not set
-# CONFIG_HUGETLBFS is not set
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-# CONFIG_CONFIGFS_FS is not set
-
-#
-# Miscellaneous filesystems
-#
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_SQUASHFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-
-#
-# Network File Systems
-#
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-# CONFIG_NFS_DIRECTIO is not set
-CONFIG_NFSD=y
-CONFIG_NFSD_V2_ACL=y
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V3_ACL=y
-CONFIG_NFSD_V4=y
-CONFIG_NFSD_TCP=y
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=y
-CONFIG_NFS_ACL_SUPPORT=y
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=y
-CONFIG_SUNRPC_GSS=y
-# CONFIG_SUNRPC_BIND34 is not set
-CONFIG_RPCSEC_GSS_KRB5=y
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=y
-# CONFIG_SMB_NLS_DEFAULT is not set
-# CONFIG_CIFS is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-
-#
-# Partition Types
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MSDOS_PARTITION=y
-
-#
-# Native Language Support
-#
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="utf-8"
-# CONFIG_NLS_CODEPAGE_437 is not set
-# CONFIG_NLS_CODEPAGE_737 is not set
-# CONFIG_NLS_CODEPAGE_775 is not set
-CONFIG_NLS_CODEPAGE_850=y
-# CONFIG_NLS_CODEPAGE_852 is not set
-# CONFIG_NLS_CODEPAGE_855 is not set
-# CONFIG_NLS_CODEPAGE_857 is not set
-# CONFIG_NLS_CODEPAGE_860 is not set
-# CONFIG_NLS_CODEPAGE_861 is not set
-# CONFIG_NLS_CODEPAGE_862 is not set
-# CONFIG_NLS_CODEPAGE_863 is not set
-# CONFIG_NLS_CODEPAGE_864 is not set
-# CONFIG_NLS_CODEPAGE_865 is not set
-# CONFIG_NLS_CODEPAGE_866 is not set
-# CONFIG_NLS_CODEPAGE_869 is not set
-# CONFIG_NLS_CODEPAGE_936 is not set
-# CONFIG_NLS_CODEPAGE_950 is not set
-# CONFIG_NLS_CODEPAGE_932 is not set
-# CONFIG_NLS_CODEPAGE_949 is not set
-# CONFIG_NLS_CODEPAGE_874 is not set
-# CONFIG_NLS_ISO8859_8 is not set
-# CONFIG_NLS_CODEPAGE_1250 is not set
-# CONFIG_NLS_CODEPAGE_1251 is not set
-# CONFIG_NLS_ASCII is not set
-CONFIG_NLS_ISO8859_1=y
-# CONFIG_NLS_ISO8859_2 is not set
-# CONFIG_NLS_ISO8859_3 is not set
-# CONFIG_NLS_ISO8859_4 is not set
-# CONFIG_NLS_ISO8859_5 is not set
-# CONFIG_NLS_ISO8859_6 is not set
-# CONFIG_NLS_ISO8859_7 is not set
-# CONFIG_NLS_ISO8859_9 is not set
-# CONFIG_NLS_ISO8859_13 is not set
-# CONFIG_NLS_ISO8859_14 is not set
-CONFIG_NLS_ISO8859_15=y
-# CONFIG_NLS_KOI8_R is not set
-# CONFIG_NLS_KOI8_U is not set
-CONFIG_NLS_UTF8=y
-
-#
-# Distributed Lock Manager
-#
-# CONFIG_DLM is not set
-# CONFIG_INSTRUMENTATION is not set
-
-#
-# Kernel hacking
-#
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-# CONFIG_PRINTK_TIME is not set
-CONFIG_ENABLE_MUST_CHECK=y
-# CONFIG_MAGIC_SYSRQ is not set
-CONFIG_UNUSED_SYMBOLS=y
-# CONFIG_DEBUG_FS is not set
-# CONFIG_HEADERS_CHECK is not set
-CONFIG_DEBUG_KERNEL=y
-# CONFIG_DEBUG_SHIRQ is not set
-# CONFIG_DETECT_SOFTLOCKUP is not set
-# CONFIG_SCHED_DEBUG is not set
-# CONFIG_SCHEDSTATS is not set
-CONFIG_TIMER_STATS=y
-# CONFIG_DEBUG_SLAB is not set
-CONFIG_DEBUG_PREEMPT=y
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_RT_MUTEX_TESTER is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-# CONFIG_DEBUG_KOBJECT is not set
-# CONFIG_DEBUG_HIGHMEM is not set
-CONFIG_DEBUG_BUGVERBOSE=y
-# CONFIG_DEBUG_INFO is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_FRAME_POINTER is not set
-CONFIG_FORCED_INLINING=y
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_FAULT_INJECTION is not set
-CONFIG_EARLY_PRINTK=y
-# CONFIG_DEBUG_STACKOVERFLOW is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-
-#
-# Page alloc debug is incompatible with Software Suspend on i386
-#
-# CONFIG_DEBUG_RODATA is not set
-# CONFIG_4KSTACKS is not set
-CONFIG_X86_FIND_SMP_CONFIG=y
-CONFIG_X86_MPPARSE=y
-CONFIG_DOUBLEFAULT=y
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_BLKCIPHER=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-# CONFIG_CRYPTO_HMAC is not set
-CONFIG_CRYPTO_XCBC=y
-# CONFIG_CRYPTO_NULL is not set
-CONFIG_CRYPTO_MD4=y
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=y
-# CONFIG_CRYPTO_WP512 is not set
-# CONFIG_CRYPTO_TGR192 is not set
-CONFIG_CRYPTO_GF128MUL=m
-CONFIG_CRYPTO_ECB=y
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_PCBC=y
-CONFIG_CRYPTO_LRW=m
-# CONFIG_CRYPTO_CRYPTD is not set
-CONFIG_CRYPTO_DES=y
-CONFIG_CRYPTO_FCRYPT=y
-CONFIG_CRYPTO_BLOWFISH=y
-CONFIG_CRYPTO_TWOFISH=y
-CONFIG_CRYPTO_TWOFISH_COMMON=y
-# CONFIG_CRYPTO_TWOFISH_586 is not set
-CONFIG_CRYPTO_SERPENT=y
-CONFIG_CRYPTO_AES=y
-CONFIG_CRYPTO_AES_586=y
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-# CONFIG_CRYPTO_TEA is not set
-CONFIG_CRYPTO_ARC4=y
-# CONFIG_CRYPTO_KHAZAD is not set
-# CONFIG_CRYPTO_ANUBIS is not set
-# CONFIG_CRYPTO_DEFLATE is not set
-CONFIG_CRYPTO_LZF=y
-CONFIG_CRYPTO_MICHAEL_MIC=y
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CAMELLIA=y
-# CONFIG_CRYPTO_TEST is not set
-# CONFIG_CRYPTO_HW is not set
-
-#
-# Library routines
-#
-CONFIG_BITREVERSE=y
-# CONFIG_CRC_CCITT is not set
-# CONFIG_CRC16 is not set
-CONFIG_CRC_ITU_T=y
-CONFIG_CRC32=y
-CONFIG_CRC7=y
-CONFIG_LIBCRC32C=y
-CONFIG_AUDIT_GENERIC=y
-CONFIG_ZLIB_INFLATE=y
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=y
-CONFIG_TEXTSEARCH_BM=y
-CONFIG_TEXTSEARCH_FSM=y
-CONFIG_PLIST=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_X86_SMP=y
-CONFIG_X86_HT=y
-CONFIG_X86_BIOS_REBOOT=y
-CONFIG_X86_TRAMPOLINE=y
-CONFIG_KTIME_SCALAR=y
diff --git a/sys-kernel/thinkpad-sources/metadata.xml b/sys-kernel/thinkpad-sources/metadata.xml
deleted file mode 100644 (file)
index 53819e4..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-<herd>mobile</herd>
-<herd>kernel</herd>
-<maintainer>
-  <email>florianmanschwetus@gmx.de</email>
-  <name>Florian Manschwetus</name>
-</maintainer>
-</pkgmetadata>
diff --git a/sys-kernel/thinkpad-sources/thinkpad-sources-2.6.23-r1.ebuild b/sys-kernel/thinkpad-sources/thinkpad-sources-2.6.23-r1.ebuild
deleted file mode 100644 (file)
index ddb5e81..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-ETYPE="sources"
-K_WANT_GENPATCHES="base extras"
-K_GENPATCHES_VER="2"
-K_SECURITY_UNSUPPORTED="1"
-
-inherit kernel-2
-detect_version
-detect_arch
-
-DESCRIPTION="Software Suspend 2 + Gentoo patchset sources + SCO Flowcontrol + Latest THINKPAD-Acpi"
-HOMEPAGE="http://dev.gentoo.org/~dsd/genpatches http://www.tuxonice.net http://bluetooth-alsa.sourceforge.net/ http://ibm-acpi.sourceforge.net/"
-
-IUSE="sco_flowcontrol"
-
-HRT_VERSION="3"
-HRT_TARGET="2.6.23"
-HRT_SRC="patch-${HRT_TARGET}-hrt${HRT_VERSION}"
-HRT_URI="http://www.kernel.org/pub/linux/kernel/people/tglx/hrtimers/2.6.23/${HRT_SRC}.patch.bz2"
-
-TUXONICE_VERSION="3.0-rc2"
-TUXONICE_TARGET="2.6.23.1"
-TUXONICE_SRC="tuxonice-${TUXONICE_VERSION}-for-${TUXONICE_TARGET}"
-TUXONICE_URI="http://www.tuxonice.net/downloads/all/${TUXONICE_SRC}.patch.bz2"
-
-SCO_FLOWCONTROL_VERSION="4.3"
-SCO_FLOWCONTROL_SRC="sco-flowcontrol-v${SCO_FLOWCONTROL_VERSION}"
-SCO_FLOWCONTROL_URI="http://bluetooth-alsa.cvs.sourceforge.net/*checkout*/bluetooth-alsa/plugz/patches/${SCO_FLOWCONTROL_SRC}.diff"
-
-THINKPAD_ACPI_VERSION="0.18-20071013"
-THINKPAD_ACPI_TARGET="2.6.23.1"
-THINKPAD_ACPI_SRC="thinkpad-acpi-${THINKPAD_ACPI_VERSION}_v${THINKPAD_ACPI_TARGET}.patch.gz"
-THINKPAD_ACPI_URI="mirror://sourceforge/ibm-acpi/${THINKPAD_ACPI_SRC}"
-
-
-
-#IEEE80211_VERSION="1.2.17"
-#IEEE80211_TARGET="2.6.20"
-#IEEE80211_SRC="05-ieee80211-${IEEE80211_VERSION}-for-${IEEE80211_TARGET}.patch"
-#IEEE80211_URI="http://whoopie.gmxhome.de/linux/patches/2.6.20/${IEEE80211_SRC}"
-
-UNIPATCH_LIST=""
-
-if use sco_flowcontrol; then
-       UNIPATCH_LIST="${UNIPATCH_LIST} ${DISTDIR}/${SCO_FLOWCONTROL_SRC}.diff"
-fi
-UNIPATCH_LIST="${UNIPATCH_LIST}
-       '${FILESDIR}'/2.6.23/disk-protect-for-2.6.23.patch
-       ${DISTDIR}/${THINKPAD_ACPI_SRC}
-       ${DISTDIR}/${IEEE80211_SRC}
-       '${FILESDIR}'/2.6.23/input-unknown_keycodes-for-2.6.23.patch
-       '${FILESDIR}'/2.6.23/linux-phc-0.3.1-for-2.6.23.patch
-       ${DISTDIR}/${TUXONICE_SRC}.patch.bz2
-       '${FILESDIR}'/2.6.23/combined-2.6.23-cph.patch
-       ${DISTDIR}/${HRT_SRC}.patch.bz2"
-
-
-UNIPATCH_STRICTORDER="yes"
-SRC_URI="${KERNEL_URI} ${GENPATCHES_URI} ${ARCH_URI} ${TUXONICE_URI} ${THINKPAD_ACPI_URI} sco_flowcontrol? ( ${SCO_FLOWCONTROL_URI} ) ${IEEE80211_URI} ${HRT_URI}"
-
-KEYWORDS="~amd64 ~x86"
-
-RDEPEND="${RDEPEND}
-               >=sys-apps/tuxonice-userui-0.7.2
-               >=sys-power/hibernate-script-1.97"
-
-#K_EXTRAEINFO="If there are issues with this kernel, please direct any
-#queries to the linux-thinkpad mailing list:"
-
-pkg_postinst() {
-       kernel-2_pkg_postinst
-       einfo "For more info on this patchset, and how to report problems, see:"
-       einfo "${HOMEPAGE}"
-       einfo "In files dir is an example config suitable for T60"
-       einfo "and hopefully all pci-express driven Thinkpads"
-       einfo "but at all you should try for all Thinkpads"
-       einfo "to NOT alter the given storage device controller configuration"
-}