linux/drivers/ata/ahci.c
<<
>>
Prefs
   1/*
   2 *  ahci.c - AHCI SATA support
   3 *
   4 *  Maintained by:  Jeff Garzik <jgarzik@pobox.com>
   5 *                  Please ALWAYS copy linux-ide@vger.kernel.org
   6 *                  on emails.
   7 *
   8 *  Copyright 2004-2005 Red Hat, Inc.
   9 *
  10 *
  11 *  This program is free software; you can redistribute it and/or modify
  12 *  it under the terms of the GNU General Public License as published by
  13 *  the Free Software Foundation; either version 2, or (at your option)
  14 *  any later version.
  15 *
  16 *  This program is distributed in the hope that it will be useful,
  17 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  18 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19 *  GNU General Public License for more details.
  20 *
  21 *  You should have received a copy of the GNU General Public License
  22 *  along with this program; see the file COPYING.  If not, write to
  23 *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  24 *
  25 *
  26 * libata documentation is available via 'make {ps|pdf}docs',
  27 * as Documentation/DocBook/libata.*
  28 *
  29 * AHCI hardware documentation:
  30 * http://www.intel.com/technology/serialata/pdf/rev1_0.pdf
  31 * http://www.intel.com/technology/serialata/pdf/rev1_1.pdf
  32 *
  33 */
  34
  35#include <linux/kernel.h>
  36#include <linux/module.h>
  37#include <linux/pci.h>
  38#include <linux/init.h>
  39#include <linux/blkdev.h>
  40#include <linux/delay.h>
  41#include <linux/interrupt.h>
  42#include <linux/dma-mapping.h>
  43#include <linux/device.h>
  44#include <linux/dmi.h>
  45#include <linux/gfp.h>
  46#include <scsi/scsi_host.h>
  47#include <scsi/scsi_cmnd.h>
  48#include <linux/libata.h>
  49#include "ahci.h"
  50
  51#define DRV_NAME        "ahci"
  52#define DRV_VERSION     "3.0"
  53
  54enum {
  55        AHCI_PCI_BAR_STA2X11    = 0,
  56        AHCI_PCI_BAR_STANDARD   = 5,
  57};
  58
  59enum board_ids {
  60        /* board IDs by feature in alphabetical order */
  61        board_ahci,
  62        board_ahci_ign_iferr,
  63        board_ahci_nosntf,
  64        board_ahci_yes_fbs,
  65
  66        /* board IDs for specific chipsets in alphabetical order */
  67        board_ahci_mcp65,
  68        board_ahci_mcp77,
  69        board_ahci_mcp89,
  70        board_ahci_mv,
  71        board_ahci_sb600,
  72        board_ahci_sb700,       /* for SB700 and SB800 */
  73        board_ahci_vt8251,
  74
  75        /* aliases */
  76        board_ahci_mcp_linux    = board_ahci_mcp65,
  77        board_ahci_mcp67        = board_ahci_mcp65,
  78        board_ahci_mcp73        = board_ahci_mcp65,
  79        board_ahci_mcp79        = board_ahci_mcp77,
  80};
  81
  82static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
  83static int ahci_vt8251_hardreset(struct ata_link *link, unsigned int *class,
  84                                 unsigned long deadline);
  85static int ahci_p5wdh_hardreset(struct ata_link *link, unsigned int *class,
  86                                unsigned long deadline);
  87#ifdef CONFIG_PM
  88static int ahci_pci_device_suspend(struct pci_dev *pdev, pm_message_t mesg);
  89static int ahci_pci_device_resume(struct pci_dev *pdev);
  90#endif
  91
  92static struct scsi_host_template ahci_sht = {
  93        AHCI_SHT("ahci"),
  94};
  95
  96static struct ata_port_operations ahci_vt8251_ops = {
  97        .inherits               = &ahci_ops,
  98        .hardreset              = ahci_vt8251_hardreset,
  99};
 100
 101static struct ata_port_operations ahci_p5wdh_ops = {
 102        .inherits               = &ahci_ops,
 103        .hardreset              = ahci_p5wdh_hardreset,
 104};
 105
 106static const struct ata_port_info ahci_port_info[] = {
 107        /* by features */
 108        [board_ahci] = {
 109                .flags          = AHCI_FLAG_COMMON,
 110                .pio_mask       = ATA_PIO4,
 111                .udma_mask      = ATA_UDMA6,
 112                .port_ops       = &ahci_ops,
 113        },
 114        [board_ahci_ign_iferr] = {
 115                AHCI_HFLAGS     (AHCI_HFLAG_IGN_IRQ_IF_ERR),
 116                .flags          = AHCI_FLAG_COMMON,
 117                .pio_mask       = ATA_PIO4,
 118                .udma_mask      = ATA_UDMA6,
 119                .port_ops       = &ahci_ops,
 120        },
 121        [board_ahci_nosntf] = {
 122                AHCI_HFLAGS     (AHCI_HFLAG_NO_SNTF),
 123                .flags          = AHCI_FLAG_COMMON,
 124                .pio_mask       = ATA_PIO4,
 125                .udma_mask      = ATA_UDMA6,
 126                .port_ops       = &ahci_ops,
 127        },
 128        [board_ahci_yes_fbs] = {
 129                AHCI_HFLAGS     (AHCI_HFLAG_YES_FBS),
 130                .flags          = AHCI_FLAG_COMMON,
 131                .pio_mask       = ATA_PIO4,
 132                .udma_mask      = ATA_UDMA6,
 133                .port_ops       = &ahci_ops,
 134        },
 135        /* by chipsets */
 136        [board_ahci_mcp65] = {
 137                AHCI_HFLAGS     (AHCI_HFLAG_NO_FPDMA_AA | AHCI_HFLAG_NO_PMP |
 138                                 AHCI_HFLAG_YES_NCQ),
 139                .flags          = AHCI_FLAG_COMMON | ATA_FLAG_NO_DIPM,
 140                .pio_mask       = ATA_PIO4,
 141                .udma_mask      = ATA_UDMA6,
 142                .port_ops       = &ahci_ops,
 143        },
 144        [board_ahci_mcp77] = {
 145                AHCI_HFLAGS     (AHCI_HFLAG_NO_FPDMA_AA | AHCI_HFLAG_NO_PMP),
 146                .flags          = AHCI_FLAG_COMMON,
 147                .pio_mask       = ATA_PIO4,
 148                .udma_mask      = ATA_UDMA6,
 149                .port_ops       = &ahci_ops,
 150        },
 151        [board_ahci_mcp89] = {
 152                AHCI_HFLAGS     (AHCI_HFLAG_NO_FPDMA_AA),
 153                .flags          = AHCI_FLAG_COMMON,
 154                .pio_mask       = ATA_PIO4,
 155                .udma_mask      = ATA_UDMA6,
 156                .port_ops       = &ahci_ops,
 157        },
 158        [board_ahci_mv] = {
 159                AHCI_HFLAGS     (AHCI_HFLAG_NO_NCQ | AHCI_HFLAG_NO_MSI |
 160                                 AHCI_HFLAG_MV_PATA | AHCI_HFLAG_NO_PMP),
 161                .flags          = ATA_FLAG_SATA | ATA_FLAG_PIO_DMA,
 162                .pio_mask       = ATA_PIO4,
 163                .udma_mask      = ATA_UDMA6,
 164                .port_ops       = &ahci_ops,
 165        },
 266        [board_ahci_sb600,
AHCI_HFLAG_AGS" -RR_INTERNALQ | board_ahci_m1cp65<16AHCI_HFLAG_NO_NCQ "L138" class="line" name="LSECT2IO4" class="sref">AHCI_HFLAGSECT2IOQ | board_ahci_m1cp77<16AHCI_HFLAG32BIT_ONLYA | board_ahci_m1cp89<17 130                .flags          = board_ahc1i_mv<17 131                .pio_mask       = board_ahci_s1b600<17 132                .udma_mask      = /* for SB700 and SB800 1*/ 133                .udma_mask      = board_ahci_vt18251<17  741/a>
  72       board_ahci_sb700,       /* aliases 1*/AHCI_HFLAG_AGS" -RR_INTERNALQ |  130                .flags          = board_ahci_m1cp65<17 131                .pio_mask       = board_ahci_m1cp65<17 132                .udma_mask      = board_ahci_m1cp77<18 133                .udma_mask      =  1 80  81182>
  73         [1ent 159                AHCI_HFLAGS     (AHCI_HFLAG_MV_PATA | c1lass<1a>,
 130                .flags          = deadl1ine 131                .pio_mask       = c1lass<1a>,
 132                .udma_mask      = deadl1ine 133                .ata_port_operatidma_mask      = m1esg,
p1dev  90<1/a>#e19pci_dev *pdev, co       .  9119>,
,       ahci_sh1t1= {
INTELratid 0x2652)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH6board_ahci_sb700,       "ahci"1INTELratid 0x2653)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH6Mboard_ahci_sb700,        1 94INTELratid 0x27c1)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH7board_ahci_sb700,         95196{
INTELratid 0x27c5)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH7Mboard_ahci_sb700,       ahci_vt8251_op1s1= {
INTELratid 0x27c3)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH7Rboard_ahci_sb700,       ahci1_ops<1a>,
ALratid 0x5288)ev" class="sref">108" id="L114" class="line" name="L114"> 114        [,       INTELratid 0x2681)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sESB2board_ahci_sb700,         92}200{
INTELratid 0x2682)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sESB2board_ahci_sb700,         20 200INTELratid 0x2683)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sESB2board_ahci_sb700,         20 = 2
INTELratid 0x27c6)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH7-M DHboard_ahci_sb700,         20ahci_sh2s20 {
INTELratid 0x2821)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH8board_ahci_sb700,       ahci_p5wdh_hardres2t204{
INTELratid 0x2822)ev" class="sref">108" id="L121" class="line" name="L121"> 121     verdrhref="+code=board_ahci_sICH8board_ahci_sb700,        2}205{
INTELratid 0x2824)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH8board_ahci_sb700,       INTELratid 0x2829)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH8Mboard_ahci_sb700,       ahci_port_infoINTELratid 0x282a)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH8Mboard_ahci_sb700,       ahci2/span20>,
INTELratid 0x2922)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH9board_ahci_sb700,       ] = 209{
INTELratid 0x2923)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH9board_ahci_sb700,       AHCI_FLAG_COMM2N210{
INTELratid 0x2924)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH9board_ahci_sb700,         20ATA_PI24211{
INTELratid 0x2925)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH9board_ahci_sb700,         20ATA_UDM2621INTELratid 0x2927)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH9board_ahci_sb700,         20ahci_o2s21 {
INTELratid 0x2929)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH9Mboard_ahci_sb700,        113   2    }214{
INTELratid 0x292a)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH9Mboard_ahci_sb700,       board_ahci_ign_iferr] = 215{
INTELratid 0x292b)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH9Mboard_ahci_sb700,       )216{
INTELratid 0x292c)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH9Mboard_ahci_sb700,       AHCI_FLAG_COMM2N21 {
INTELratid 0x292f)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH9Mboard_ahci_sb700,       ATA_PI2421>,
INTELratid 0x294d)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH9board_ahci_sb700,       ATA_UDM26219{
INTELratid 0x294e)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH9Mboard_ahci_sb700,       ahci_o2s220{
INTELratid 0x502a)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sTolapaiboard_ahci_sb700,         20 120   2    }221{
INTELratid 0x502b)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sTolapaiboard_ahci_sb700,         20board_ahci_nosntf] = 22INTELratid 0x3a05)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH1>board_ahci_sb700,       AHCI_HFLAG_NO_SNT2)22 {
INTELratid 0x3a22)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH1>board_ahci_sb700,       AHCI_FLAG_COMM2N224{
INTELratid 0x3a25)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sICH1>board_ahci_sb700,       ATA_PI24225{
INTELratid 0x3b22)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sPCH ref"board_ahci_sb700,       ATA_UDM26226{
INTELratid 0x3b23)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sPCH ref"board_ahci_sb700,       ahci_o2s22 {
INTELratid 0x3b24)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sPCH RAIDboard_ahci_sb700,        127   2    }22>,
INTELratid 0x3b25)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sPCH RAIDboard_ahci_sb700,       board_ahci_yes_fbs] = 229{
INTELratid 0x3b29)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sPCH ref"board_ahci_sb700,       AHCI_HFLAG_YES_FB2)230{
INTELratid 0x3b2b)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sPCH RAIDboard_ahci_sb700,       AHCI_FLAG_COMM2N231{
INTELratid 0x3b2c)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sPCH RAIDboard_ahci_sb700,         20ATA_PI2423INTELratid 0x3b2f)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sPCH ref"board_ahci_sb700,       ATA_UDM2623 {
INTELratid 0x1c02)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sCPT ref"board_ahci_sb700,       ahci_o2s234{
INTELratid 0x1c03)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sCPT ref"board_ahci_sb700,        134   2    }235{
INTELratid 0x1c04)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sCPT RAIDboard_ahci_sb700,       /* by chipsets */2/span236{
INTELratid 0x1c05)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sCPT RAIDboard_ahci_sb700,       board_ahci_mcp65] = 23 {
INTELratid 0x1c06)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sCPT RAIDboard_ahci_sb700,       AHCI_HFLAG_NO_PM2 23>,
INTELratid 0x1c07)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sCPT RAIDboard_ahci_sb700,       AHCI_HFLAG_YES_NC2)239{
INTELratid 0x1d02)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sPBG ref"board_ahci_sb700,       ATA_FLAG_NO_DI2M240{
INTELratid 0x1d04)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sPBG RAIDboard_ahci_sb700,       ATA_PI24241{
INTELratid 0x1d06)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sPBG RAIDboard_ahci_sb700,         20ATA_UDM2624INTELratid 0x2826)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sPBG RAIDboard_ahci_sb700,       ahci_o2s24 {
INTELratid 0x2323)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sDH89xxCC ref"board_ahci_sb700,        143   2    }244{
INTELratid 0x1e02)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sPanther Point ref"board_ahci_sb700,       board_ahci_mcp77] = 245{
INTELratid 0x1e03)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sPanther Point ref"board_ahci_sb700,       AHCI_HFLAG_NO_PM2)246{
INTELratid 0x1e04)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sPanther Point RAIDboard_ahci_sb700,       AHCI_FLAG_COMM2N24 {
INTELratid 0x1e05)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sPanther Point RAIDboard_ahci_sb700,       ATA_PI2424>,
INTELratid 0x1e06)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sPanther Point RAIDboard_ahci_sb700,       ATA_UDM26249{
INTELratid 0x1e07)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sPanther Point RAIDboard_ahci_sb700,       ahci_o2s250{
INTELratid 0x1e0e)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sPanther Point RAIDboard_ahci_sb700,        150   2    }251{
INTELratid 0x8c02)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sLynx Point ref"board_ahci_sb700,       board_ahci_mcp89] = 25INTELratid 0x8c03)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sLynx Point ref"board_ahci_sb700,       AHCI_HFLAG_NO_FPDMA_A2)25 {
INTELratid 0x8c04)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sLynx Point RAIDboard_ahci_sb700,       AHCI_FLAG_COMM2N254{
INTELratid 0x8c05)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sLynx Point RAIDboard_ahci_sb700,       ATA_PI24255{
INTELratid 0x8c06)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sLynx Point RAIDboard_ahci_sb700,       ATA_UDM26256{
INTELratid 0x8c07)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sLynx Point RAIDboard_ahci_sb700,       ahci_o2s25 {
INTELratid 0x8c0e)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sLynx Point RAIDboard_ahci_sb700,        157   2    }25>,
INTELratid 0x8c0f)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sLynx Point RAIDboard_ahci_sb700,       board_ahci_mv] = 259{
INTELratid 0x9c02)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sLynx Point-LP ref"board_ahci_sb700,       AHCI_HFLAG_NO_MS2 260{
INTELratid 0x9c03)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sLynx Point-LP ref"board_ahci_sb700,       AHCI_HFLAG_NO_PM2)261{
INTELratid 0x9c04)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sLynx Point-LP RAIDboard_ahci_sb700,       ATA_FLAG_PIO_D2A26INTELratid 0x9c05)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sLynx Point-LP RAIDboard_ahci_sb700,       ATA_PI2426 {
INTELratid 0x9c06)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sLynx Point-LP RAIDboard_ahci_sb700,       ATA_UDM26264{
INTELratid 0x9c07)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sLynx Point-LP RAIDboard_ahci_sb700,       ahci_o2s265{
INTELratid 0x9c0e)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sLynx Point-LP RAIDboard_ahci_sb700,        165   2    }266{
INTELratid 0x9c0f)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sLynx Point-LP RAIDboard_ahci_sb700,       board_ahci_sb6002/    2  [,       board_ahci_m2cp65<26board_ahci_m2cp77<269{
board_ahci_m2cp89<27108" id="L114" class="line" name="L114"> 114        [,       board_ahc2i_mv<27,       board_ahci_s2b600<27108" id="L114" class="line" name="L114"> 114        [,       /* for SB700 and SB800 2*/108" id="L114" class="line" name="L114"> 114        [,       board_ahci_vt28251<27,         742/a>
,       /* aliases 2*/108" id="L166" class="line" name="L166"> 266   verdrhref="+code=board_ahci_sAT"bSB6">board_ahci_sb700,       108" id="L16672" class="line" name="L72">  72  verdrhref="+code=board_ahci_sAT"bSB2board_ahci_sb700,       board_ahci_m2cp65<27>,
108" id="L16672" class="line" name="L72">  72  verdrhref="+code=board_ahci_sAT"bSB2board_ahci_sb700,       board_ahci_m2cp65<279{
108" id="L16672" class="line" name="L72">  72  verdrhref="+code=board_ahci_sAT"bSB2board_ahci_sb700,       board_ahci_m2cp77<280{
108" id="L16672" class="line" name="L72">  72  verdrhref="+code=board_ahci_sAT"bSB2board_ahci_sb700,        2 80108" id="L16672" class="line" name="L72">  72  verdrhref="+code=board_ahci_sAT"bSB2board_ahci_sb700,         8128108" id="L16672" class="line" name="L72">  72  verdrhref="+code=board_ahci_sAT"bSB2board_ahci_sb700,       2ent,       c2lass<2a>,
,       deadl2ine)ev" class="sref">108" id="L108" class="line" name="L108"verdrhref="+code=board_ahci_sAMDbHudson-2board_ahci_sb700,       c2lass<2a>,
,       deadl2ine,       108" id="L108" class="line" name="L108"ver_sb700,       m2esg,
,       p2dev,         90<2/a>#e291{
108" id="L1"L73" class="line" name="L73">  73    verdrhref="+code=board_ahci_sVIAbVTboard_ahci_sb700,         9129108" id="L1"L73" class="line" name="L73">  73    verdrhref="+code=board_ahci_sVIAbVTboard_ahci_sb700,       ahci_sh2t29,       "ahci"2,
,        2 94108" id="L_mcpops" class=ne" name="L73">  mcpop    verdef="drhref="+code=board_ahci_sMCP65board_ahci_sb700,         95296{
108" id="L_mcpops" class=ne" name="L73">  mcpop    verdef="drhref="+code=board_ahci_sMCP65board_ahci_sb700,       ahci_vt8251_op2s2= {
108" id="L_mcpops" class=ne" name="L73">  mcpop    verdef="drhref="+code=board_ahci_sMCP65board_ahci_sb700,       ahci2_ops<2a>,
108" id="L1mcpops" class=ne" name="L73">  mcpop    verdef="drhref="+code=board_ahci_sMCP65board_ahci_sb700,       108" id="L_mcpops" class=ne" name="L73">  mcpop    verdef="drhref="+code=board_ahci_sMCP65board_ahci_sb700,         93}300{
108" id="L_mcpops" class=ne" name="L73">  mcpop    verdef="drhref="+code=board_ahci_sMCP65board_ahci_sb700,         20 300108" id="L_mcpops" class=ne" name="L73">  mcpop    verdef="drhref="+code=board_ahci_sMCP65board_ahci_sb700,         20 = 3
108" id="L1mcpops" class=ne" name="L73">  mcpop    verdef="drhref="+code=board_ahci_sMCP65board_ahci_sb700,         20ahci_sh3s30 {
108" id="L1mcpo7s" class=ne" name="L73">  mcpo7    verdef="drhref="+code=board_ahci_sMCP67board_ahci_sb700,       ahci_p5wdh_hardres3t304{
108" id="L1mcpo7s" class=ne" name="L73">  mcpo7    verdef="drhref="+code=board_ahci_sMCP67board_ahci_sb700,        3}305{
108" id="L1mcpo7s" class=ne" name="L73">  mcpo7    verdef="drhref="+code=board_ahci_sMCP67board_ahci_sb700,       108" id="L1mcpo7s" class=ne" name="L73">  mcpo7    verdef="drhref="+code=board_ahci_sMCP67board_ahci_sb700,       ahci_vt8251_op3[] = 30 {
108" id="L1mcpo7s" class=ne" name="L73">  mcpo7    verdef="drhref="+code=board_ahci_sMCP67board_ahci_sb700,       ahci3/span30>,
108" id="L1mcpo7s" class=ne" name="L73">  mcpo7    verdef="drhref="+code=board_ahci_sMCP67board_ahci_sb700,       ] = 309{
108" id="L1mcpo7s" class=ne" name="L73">  mcpo7    verdef="drhref="+code=board_ahci_sMCP67board_ahci_sb700,       AHCI_FLAG_COMM3N310{
108" id="L1mcpo7s" class=ne" name="L73">  mcpo7    verdef="drhref="+code=board_ahci_sMCP67board_ahci_sb700,         20ATA_PI34311{
108" id="L1mcpo7s" class=ne" name="L73">  mcpo7    verdef="drhref="+code=board_ahci_sMCP67board_ahci_sb700,         20ATA_UDM3631108" id="L1mcpo7s" class=ne" name="L73">  mcpo7    verdef="drhref="+code=board_ahci_sMCP67board_ahci_sb700,         20ahci_o3s31 {
108" id="L1mcpo7s" class=ne" name="L73">  mcpo7    verdef="drhref="+code=board_ahci_sMCP67board_ahci_sb700,        113   3    }314{
108" id="L1mcpo7s" class=ne" name="L73">  mcpo7    verdef="drhref="+code=board_ahci_sMCP67board_ahci_sb700,       board_ahci_ign_iferr] = 315{
108" id="L1mcp_i_iuxs" class=ne" name="L73">  mcp_i_iux    verderhref="+code=board_ahci_sL_iux IDboard_ahci_sb700,       )316{
108" id="L1mcp_i_iuxs" class=ne" name="L73">  mcp_i_iux    verderhref="+code=board_ahci_sL_iux IDboard_ahci_sb700,       AHCI_FLAG_COMM3N31 {
108" id="L1m_i_iuxs" class=ne" name="L73">  mcp_i_iux    verderhref="+code=board_ahci_sL_iux IDboard_ahci_sb700,       ahci_o3s31 {
    verdrhref="sre    ,       3ahci_sb700,       ATA_UDM26219{
    verd"verdrhre3="+code=board_ahci_sICH93board3ahci_sb700,       ahci_o2s220{
    verd"f="drhref+code=board_ahci_sTolapa3board3ahci_sb700,         20 120   2    }221{
    verd"f="drhref+code=board_ahci_sTolapa3board3ahci_sb700,         20board_ahci_nosntf] = 22    verd"f="drhref="+code=board_ahci_sICH13board3ahci_sb700,       AHCI_HFLAG_NO_SNT2)22 {
    verd"f="drhref="+code=board_ahci_sICH13board3ahci_sb700,       AHCI_FLAG_COMM2N224{
    verd"f="drhref="+code=board_ahci_sICH13board3ahci_sb700,       ATA_PI24225{
    verd"erhref="+code=board_ahci_sPCH ref3board3ahci_sb700,       ATA_UDM26226{
    verd"erhref="+code=board_ahci_sPCH ref3board3ahci_sb700,       ahci_o2s22 {
    verd"erhref="+code=board_ahci_sPCH RAI3board3ahci_sb700,        127   2    }22>,
    verd"href="srecode=board_ahci_sPCH RAI3board3ahci_sb700,       board_ahci_yes_fbs] = 229{
    verdrdrhref="3code=board_ahci_sPCH ref3board3ahci_sb700,       AHCI_HFLAG_YES_FB2)230{
    verdrf="drhrefcode=board_ahci_sPCH RAI3board3ahci_sb700,       AHCI_FLAG_COMM2N231{
108" id="L1m73ass=3a 56VDEVIss="line" nam  58a>    verdrf="drhrefcode=board_ahci_sPCH RAI3board3ahci_sb700,         20ATA_PI2423108" id="L1m73ass=3a 56VDEVIss="line" nam  58a>    verdrf="drhrefcode=board_ahci_sPCH ref3board3ahci_sb700,       ATA_UDM2623 {
108" id="L1m73ass=3a 56VDEVIss="line" nam  58a>    verdrf="drhrefcode=board_ahci_sCPT ref3board3ahci_sb700,       ahci_o2s234{
108" id="L1m73ass=3a 56VDEVIss="line" nam  58a>    verdrf="drhrefcode=board_ahci_sCPT ref3board3ahci_sb700,        134   2    }235{
108" id="L1m73ass=3a 56VDEVIss="line" nam  58a>    verdrerhref="+code=board_ahci_sCPT RAI3board3ahci_sb700,       /* by chipsets */2/span236{
108" id="L1m73ass=3a 56VDEVIss="line" nam  58a>    verdrerhref="+code=board_ahci_sCPT RAI3board3ahci_sb700,       board_ahci_mcp65] = 23 {
108" id="L1m73ass=3a 56VDEVIss="line" nam  58a>    verdrerhref="+code=board_ahci_sCPT RAI3Dboar3+code=board_ahci_sCPT RAIDboard_ahci_sb700,       AHC="d{o       .108" id="L1m73ass=3a 56VDEVIss="line" nam  58a>    verdrhref="srecode=board_ahci_sCPT RAI3board3ahci_sb700,       AHCI_HFLAG_YES_NC2)239{
108" id="L1m73ass=3a 56VDEVIss="line" nam  58a>    verdrdrhref="3code=board_ahci_sPBG ref3board3ahci_sb700,       ATA_FLAG_NO_DI2M240{
108" id="L1m73ass=3a 56VDEVIss="line" nam  58a>    verdrf="drhrefcode=board_ahci_sPBG RAI3board3ahci_sb700,       ATA_PI24241{
108" id="L1m73ass=3a 56VDEVIss="line" nam  58a>    verdrf="drhrefcode=board_ahci_sPBG RAI3board3ahci_sb700,         20ATA_UDM2624108" id="L1m73ass=3a 56VDEVIss="line" nam  58a>    verdrf="drhrefcode=board_ahci_sPBG RAI3board3ahci_sb700,       ahci_o2s24 {
108" id="L1m7po7s" class=ne" name="L73">  mcpo7    verdef="+code3board_ahci_sDH89xxCC ref3board3ahci_sb700,        143   2    }244{
108" id="L1m7po7s" class=ne" name="L73">  mcpo7    verdef="drhref_ahci_sPanther Point ref3board3ahci_sb700,       board_ahci_mcp77] = 245{
108" id="L1m7po7s" class=ne" name="L73">  mcpo7    verdeerhref="+_ahci_sPanther Point ref3board3ahci_sb700,       AHCI_HFLAG_NO_PM2)246{
108" id="L1m7po7s" class=ne" name="L73">  mcpo7    verdeerhref="+_ahci_sPanther Point RAI3board3ahci_sb700,       AHCI_FLAG_COMM2N24 {
108" id="L1m7po7s" class=ne" name="L73">  mcpo7    verdeerhref="+_ahci_sPanther Point RAI3board3ahci_sb700,       ATA_PI2424>,
108" id="L1m7po7s" class=ne" name="L73">  mcpo7    verdehref="sre_ahci_sPanther Point RAI3board3ahci_sb700,       ATA_UDM26249{
108" id="L1m7po7s" class=ne" name="L73">  mcpo7    verdcode=boar3_ahci_sPanther Point RAI3board3ahci_sb700,       ahci_o2s250{
108" id="L1m7po7s" class=ne" name="L73">  mcpo7    verdcf="drhref_ahci_sPanther Point RAI3board3ahci_sb700,        150   2    }251{
108" id="L1m7po7s" class=ne" name="L73">  mcpo7    verdcf="drhrefhci_sb700,       ,       board_ahci_mcp89] = 25108" id="L1m7po7s" class=ne" name="L73">  mcpo7    verdcf="drhrefard_ahci_sLynx Point ref3board3ahci_sb700,       AHCI_HFLAG_NO_FPDMA_A2)25 {
108" id="L1m7po7s" class=ne" name="L73">  mcpo7    verdcf="+code3ard_ahci_sLynx Point RAI3board3ahci_sb700,       AHCI_FLAG_COMM2N254{
108" id="L1m7po7s" class=ne" name="L73">  mcpo7    verdcf="drhrefard_ahci_sLynx Point RAI3board3ahci_sb700,       ATA_PI24255{
108" id="L1m79o7s" class=ne" name="L73">  mcpo7    verdcerhref="+ard_ahci_sLynx Point RAI3board3ahci_sb700,       ATA_UDM26256{
108" id="L1m79o7s" class=ne" name="L73">  mcpo7    verdcerhref="+ard_ahci_sLynx Point RAI3board3ahci_sb700,       ahci_o2s25 {
108" id="L1m79o7s" class=ne" name="L73">  mcpo7    verdcerhref="+ard_ahci_sLynx Point RAI3board3ahci_sb700,        157   2    }25>,
108" id="L1m79o7s" class=ne" name="L73">  mcpo7    verdchref="sreard_ahci_sLynx Point RAI3board3ahci_sb700,       board_ahci_mv] = 259{
108" id="L1m79o7s" class=ne" name="L73">  mcpo7    verdcode=boar3_ahci_sLynx Point-LP ref3board3ahci_sb700,       AHCI_HFLAG_NO_MS2 260{
108" id="L1m79o7s" class=ne" name="L73">  mcpo7    verdcf="drhref_ahci_sLynx Point-LP ref3board3ahci_sb700,       AHCI_HFLAG_NO_PM2)261{
108" id="L1m79o7s" class=ne" name="L73">  mcpo7    verdcf="drhref_ahci_sLynx Point-LP RAI3board3ahci_sb700,       ATA_FLAG_PIO_D2A26108" id="L1m79o7s" class=ne" name="L73">  mcpo7    verdcf="drhref_ahci_sLynx Point-LP RAI3board3ahci_sb700,       ATA_PI2426 {
108" id="L1m79o7s" class=ne" name="L73">  mcpo7    verdcf="+code3_ahci_sLynx Point-LP RAI3board3ahci_sb700,       ATA_UDM26264{
108" id="L1m79o7s" class=ne" name="L73">  mcpo7    verdcf="drhref_ahci_sLynx Point-LP RAI3board3ahci_sb700,       ahci_o2s265{
108" id="L1m79o7s" class=ne" name="L73">  mcpo7    verdcerhref="+_ahci_sLynx Point-LP RAI3board3ahci_sb700,        165   2    }266{
108" id="L1m79o7s" class=ne" name="L73">  mcpo7    verdcerhref="+_ahci_sLynx Point-LP RAI3board36hci_sb700,       ahci_o2s25 {
108" id="L1m89o7s" class=ne" name="L73">  mcpo7    verdcerhref="+sref">board_ahci_sb6002/3   2 36hci_sb700,        157   2    }25>,
108" id="L1m89o7s" class=ne" name="L73">  mcpo7    verdchref="srecod to avoid IDE functio3 oard3ahci_sb700,        157   2    }25>,
108" id="L1m89o7s" class=ne" name="L73">  mcpo7    verd href  563NY_IDflags" class="s  563NY_ID37hci_sb700,       AHCI_HFLAG_NO_MS2 260{
108" id="L1m89o7s" class=ne" name="L73">  mcpo7    verd f="drhref name="L114"> 114   3    [37hci_sb700,       AHCI_HFLAG_NO_PM2)261{
108" id="L1m89o7s" class=ne" name="L73">  mcpo7    verd f="drhrefction with IDE "+cod ref3 oard3ahci_sb700,       board_ahci_s2b600<27108" id="L1m89o7s" class=ne" name="L73">  mcpo7    verd f="drhref name="L114"> 114   3    [3aver_sb700,       /* for SB700 and SB800 2*/108" id="L1m89o7s" class=ne" name="L73">  mcpo7    verd f="+code3 name="L114"> 114   3    [37hci_sb700,       ATA_UDM26264{
108" id="L1m89o7s" class=ne" name="L73">  mcpo7    verd f="drhrefs="sref">board_ahci_vt28351<2737hci_sb700,       ahci_o2s265{
108" id="L1m89o7s" class=ne" name="L73">  mcpo7    verd erhref="+ef="+code=board_ahci_sAT3board3ahci_sb700,       /* aliases 2*/108" id="L1m89o7s" class=ne" name="L73">  mcpo7    verd erhref="+ode=board_ahci_sAT"bSB6"3board3ahci_sb700,       108" id="L1m89o7s" class=ne" name="L73">  mcpo7    verd erhref="+board_ahci_sAT"bSB2,       board_ahci_m2cp65<27>,
108" id="L1m89o7s" class=ne" name="L73">  mcpo7    verd href="sreboard_ahci_sAT"bSB2,       ,         mcpo7    verdef="+code3board_ahci_sAT"bSB2,        2 80  mcpo7    verdef="drhrefboard_ahci_sAT"bSB2,         8128  mcpo7    verdef="drhrefboard_ahci_sAT"bSB2,       /* for SB700 and SB800 2*/  mcpo7    verdef="+code3ode=ent" class="sref">2e3t  mcpo7    verdef="drhrefef="+code=board_ahci_sAM3board3ahci_sb700,       /* aliases 2*/108" id="Larvell"drhref="+code=board_ahci_sAMDbis using 3rhref="sre="L108" class="line" nam3="L1038hci_sb700,        157   2    }25>,
108" id="614n"drhref="+code=board_ahci_sAMDbis using 3" class2o3e=mesg" class="sref">m2e3g,       AHCI_HFLAG_NO_MS2 260{
108" id="612" class="line" name="L73">  73    ver3href="drh3ef="+code=board_ahci_sVI3board3ahci_sb700,       AHCI_HFLG_NO_MS2  .      AHCI2="srci_sb=         .      AHCI2="sr_maskci_sb=   56CLASS;< 8d 0xffffffev" class="sr3rf="+code3" class="sref">ahci_sh2t3/a>293a hr_sb700  .      AHCIxfffff_dv" ci_sb=       AHCIline" namNVyes_fb_atid 0x055b)eeeeeeeeeeeeev" class="sref">108" id="88se9128o7s" class=ne" name="L73">  mcpo7    verdf="drhref3"+code=board_ahci_sNVIDI3board3ahci_sb700,       AHCI_HFLG_NO_MS2AHCIxfffff_dv" ci_sb=       AHCIline" namNVyes_fb_atid 0x055b)eeeeeeeeeeeeev" class="sref">108" id="88se912n"drhref="+code=board_ahci_sAMDbis using 3"erhref="+="+code=board_ahci_sMCP63board3ahci_sb700,       AHCI_HFLG_NO_MS2AHCIxfffff_dv" ci_sb=       AHCIline" namNVyes_fb_atid 0x055b)eeeeeeeeeeeeev" class="sref">108" id="88se9172"drhref="+code=board_ahci_sAMDbis using 3"href="sre="+code=board_ahci_sMCP63board3ahci_sb700,       AHCI_HFLG_NO_MS2AHCIxfffff_dv" ci_sb=       AHCIline" namNVyes_fb_atid 0x055b)eeeeeeeeeeeeev" class="sref">108" id="88se9172"on some Gigabyte"drhref="+code=board_ahci_sAMDbis using 4ef="drhre4="+code=board_ahci_sMCP64board4ahci_sb700,       AHCI_HFLG_NO_MS2AHCIxfffff_dv" ci_sb=       AHCIline" namNVyes_fb_atid 0x;< 8d 0xffffffev" class="sr4e3="drhre4=e=board_ahci_sVIAbVT,       ,        3}305{
  mcpo7    ver4ef="drhre4="+code=board_ahci_sMCP64board4ahci_s=ne" name="L73">  mcpo7    ver4e7="drhre4="+code=board_ahci_sMCP64board4ahci_sb700,         mcpo7    ver4e8="drhre4="+code=board_ahci_sMCP64board4ahci_sb700,       ahci3/span30>,
  mcpo7    ver4e9="drhre4="+code=board_ahci_sMCP64board4ahci_sb700,       ] = 309{
  mcpo7    ver4ef="drhre4="+code=board_ahci_sMCP64board4ahci_sb700,       AHCI_FLAG_COMM3N310{
  73    ver4ef="drhre4="+code=board_ahci_sMCP64board4ahci_sb700,         20ATA_PI34311{
,         mcpo7    ver4derhref="4code=board_ahci_sL_iux I4board4ahci_sb700, }0,       , 4     41ver_sb700,       ,       ,       .      .      .      .      ,       .               =       311{
"Larvell"SATA via AHC{"(1 = enablld)"href="+);code=board_ahci_sAMDbis using 4r9="drhre4code=board_ahci_sCPT RAI4board43ver_sb700,       ,                                        struct nam  56VDEVICE{namNVhost_pahc hrNVIDIAlass="namNVhost_pahcci_s *nam  56VDEVICE{hpahc hrNVIDIAlass="hpahcci_s)code=board_ahci_sAMDbis using 4rf="drhre4code=board_ahci_sPBG RAI4board4ahci_s{b700,       unsigcid int nam  56VDEVICE{force_port_map hrNVIDIAlass="force_port_mapci_sb=  ;code=board_ahci_sAMDbis using 4ef="drhre4_ahci_sPanther Point ref4board4ahci_sb700unsigcid int nam  56VDEVICE{mask_port_map hrNVIDIAlass="mask_port_mapci_sb=  ;code=board_ahci_sAMDbis using 4ef="drhre4_ahci_sPanther Point ref4board44hci_s=ne" name="L73">  mcpo7    ver4eerhref="4_ahci_sPanther Point RAI4board4ahci_sb700if /a>311{
,               h>311{
311{
"JMB361 has only one port\n"href="+);code=board_ahci_sAMDbis using 4ehref="sr4_ahci_sPanther Point RAI4board4ahci_sb700        h>311{
        * is         * presence register,         *rhref="+code=board_ahci_sAMDbis using 4cerhref="4ard_ahci_sLynx Point RAI4board45hci_sb700if /a>311{
AHCIflag_ci_sb& h>311{
,               if /a>311{
,                       h>311{
                h>311{
        h>311{
311{
                  ,       "Disabling your PATA port. Use the boot option 's usimarvell_enabll=0' to avoid this.\n"href="+);code=board_ahci_sAMDbis using 4cf="+code4_ahci_sLynx Point-LP RAI4board4ahci_sb700}code=board_ahci_sAMDbis using 4cf="drhre4_ahci_sLynx Point-LP RAI4board4ahci_scode=board_ahci_sAMDbis using 4cf="drhre4_ahci_sLynx Point-LP RAI4board4ahci_sb700nam  56VDEVICE{namNVsavl_initial_config hrNVIDIAlass="namNVsavl_initial_configI34311{
311{
700                  ,>311{
board_ahci_sb6002/4   2 46hci_s}code=board_ahci_sAMDbis using 4chref="sr4cod to avoid IDE functio4 oard46ver_sb700,       ,        114   4    [47hci_s{b700,       struct nam  56VDEVICE{pmNV ev hrNVIDIAlass="pmNV evci_s *nam  56VDEVICE{p ev hrNVIDIAlass="p evci_s =       311{
 114   4    [47hci_sb700,        114   4    [47hci_sb700nam  56VDEVICE{namNVreset_controll   hrNVIDIAlass="namNVreset_controll  I34board_ahci_vt28451<2747hci_scode=board_ahci_sAMDbis using 4 erhref="4ef="+code=board_ahci_sAT4board4ahci_sb700if /a>311{
,       700 struct nam  56VDEVICE{namNVhost_pahc hrNVIDIAlass="namNVhost_pahcci_s *nam  56VDEVICE{hpahc hrNVIDIAlass="hpahcci_s =       AHCIpahcate_dv" ci_s;code=board_ahci_sAMDbis using 4 erhref="4board_ahci_sAT"bSB2        h>311{
AHCIu1hci_s       AHCItmpcoci_s;code=board_ahci_sAMDbis using 4 href="sr4board_ahci_sAT"bSB2,               ,         mcpo7    ver4ef="+code4board_ahci_sAT"bSB2        nam  56VDEVICE{pmNVread_config_word hrNVIDIAlass="pmNVread_config_wordI34AHCItmpcoci_se;code=board_ahci_sAMDbis using 4ef="drhre4board_ahci_sAT"bSB2        if //nam  56VDEVICE{tmpcode=board_">AHCItmpcoci_sb& h>311{
,                       nam  56VDEVICE{tmpcode=board_">AHCItmpcoci_sb|=       2e4t                nam  56VDEVICE{pmNVwrite_config_word hrNVIDIAlass="pmNVwrite_config_wordI34AHCItmpcoci_se;code=board_ahci_sAMDbis using 4ef="drhre4ef="+code=board_ahci_sAM4board485ci_sb700        }code=board_ahci_sAMDbis using 4ref="+cod4=board_ahci_sAMDbHudson-4board48hci_sb700}code=board_ahci_sAMDbis using 4rerhref="4onlysb700n cli" ctroll  4board4ahci_scode=board_ahci_sAMDbis using 4rerhref="4NY_IDflags" class="s  564NY_ID4atid_sb700return  ;code=board_ahci_sAMDbis using 4rhref="sr4="L108" class="line" nam4="L1048hci_s}code=board_ahci_sAMDbis using 4" class2o4e=mesg" class="sref">m2e4g,       ,       struct nam  56VDEVICE{namNVhost_pahc hrNVIDIAlass="namNVhost_pahcci_s *nam  56VDEVICE{hpahc hrNVIDIAlass="hpahcci_s =       AHCIpahcate_dv" ci_s;code=board_ahci_sAMDbis using 4rf="+code4" class="sref">ahci_sh2t4/a>294a hr_sb700struct nam  56VDEVICE{pmNV ev hrNVIDIAlass="pmNV evci_s *nam  56VDEVICE{p ev hrNVIDIAlass="p evci_s =       311{
void       nam  56VDEVICE{ucode=board_">AHCIuahci_s nam  56VDEVICE{tmpde=board_">AHCItmpci_s;code=board_ahci_sAMDbis using 4rerhref="4="+code=board_ahci_sMCP64board4ahci_sb700int nam  56VDEVICE{mv hrNVIDIAlass="Ivatid;code=board_ahci_sAMDbis using 4rerhref="4="+code=board_ahci_sMCP64board498ci_scode=board_ahci_sAMDbis using 4rhref="sr4="+code=board_ahci_sMCP64board4ahci_sb700if /a>311{
AHCIflag_ci_sb& h>311{
,         00if /a>311{
,                       h>311{
                nam  56VDEVICE{mv hrNVIDIAlass="Ivatid = 4;code=board_ahci_sAMDbis using 5e4="drhre5= class="sref">ahci_sh2t5board504ci_sb700        nam  56VDEVICE{port_mmio hrNVIDIAlass="port_mmioci_s =               nam  56VDEVICE{writel hrNVIDIAlass="writelI34        h         mcpo7    ver5e9="drhre5="+code=board_ahci_sMCP65board50hci_sb700        h>311{
AHCItmpci_s =               ,     "sORT_IRQ_STAT 0x%x\n"href="+, nam  56VDEVICE{tmpde=board_">AHCItmpci_s);code=board_ahci_sAMDbis using 5ef="drhre5="+code=board_ahci_sMCP65board51hci_sb700        if /a>311{
AHCItmpci_s)code=board_ahci_sAMDbis using 5ef="drhre5="+code=board_ahci_sMCP65board512ci_sb700                nam  56VDEVICE{writel hrNVIDIAlass="writelI34311{
AHCItmpci_s, nam  56VDEVICE{port_mmio hrNVIDIAlass="port_mmioci_s +       }code=board_ahci_sAMDbis using 5ef="drhre5="+code=board_ahci_sMCP65board51 hr_s=ne" name="L73">  mcpo7    ver5e5="drhre5="+code=board_ahci_sMCP65board5ahci_sb700nam  56VDEVICE{namNVinit_controll   hrNVIDIAlass="namNVinit_controll  I34AHCIntaVahckci_s *nam  56VDEVICE{ahckas2="sref">AHCIahckci_s,>unsigcid int *nam  56VDEVICE{2="sras2="sref">AHCI2="srci_s,code=board_ahci_sAMDbis using 5d9="drhre5    , 5     51hci_sb700                         unsigcid long h>311{
AHCIntaVportci_s *nam  56VDEVICE{ap hrNVIDIAlass="apci_s =       AHCIahckci_s->h>311{
int nam  56VDEVICE{rc hrNVIDIAlass="rcci_s;code=board_ahci_sAMDbis using 5"f="drhre5="+code=board_ahci_sICH15board52 hr_s=ne" name="L73">  mcpo7    ver5"5="drhre5="+code=board_ahci_sICH15board52hci_sb700nam  56VDEVICE{DPRINTKss2 name="L157"DPRINTKI34"ENTER\n"href="+);code=board_ahci_sAMDbis using 5"f="drhre5code=board_ahci_sPCH ref5board52hci_s=ne" name="L73">  mcpo7    ver5"erhref="5code=board_ahci_sPCH ref5board5ahci_sb700nam  56VDEVICE{namNVstop_enginl hrNVIDIAlass="namNVstop_enginlI34AHCIahckci_s,>      AHCIahckci_s->h>311{
        >                nam  56VDEVICE{deadlinl hrNVIDIAlass="deadlinlci_s, &nam  56VDEVICE{onlinl hrNVIDIAlass="onlinlci_s,>      h>311{
nam  56VDEVICE{DPRINTKss2 name="L157"DPRINTKI34"EXIT, rc=%d,   AHCI2="srci_s);code=board_ahci_sAMDbis using 5r5="drhre5code=board_ahci_sCPT ref5board53hci_scode=board_ahci_sAMDbis using 5rf="drhre5code=board_ahci_sCPT RAI5board53hci_sb700n         mcpo7    ver5rerhref="5code=board_ahci_sCPT RAI5board5ahci_sn               * request follow-up softreset." class=ne" name="L73">  mcpo7    ver5rerhref="5code=board_ahci_sCPT RAI5Dboar5+code=>               *rhref="+code=board_ahci_sAMDbis using 5r9="drhre5code=board_ahci_sCPT RAI5board539ci_sb700return nam  56VDEVICE{onlinl hrNVIDIAlass="onlinlci_s ? -nam  56VDEVICE{EAGAINAHCIntaVahckci_s *nam  56VDEVICE{ahckas2="sref">AHCIahckci_s,>unsigcid int *nam  56VDEVICE{2="sras2="sref">AHCI2="srci_s,code=board_ahci_sAMDbis using 5rf="drhre5code=board_ahci_sPBG RAI5board543ci_sb700                        unsigcid long h>311{
,       struct nam  56VDEVICE{ntaVportas2="sref">AHCIntaVportci_s *nam  56VDEVICE{ap hrNVIDIAlass="apci_s =       AHCIahckci_s->h>311{
struct nam  56VDEVICE{namNVport_pahc hrNVIDIAlass="namNVport_pahcci_s *nam  56VDEVICE{pp hrNVIDIAlass="ppci_s =       AHCIpahcate_dv" ci_s;code=board_ahci_sAMDbis using 5eerhref="5_ahci_sPanther Point RAI5board54hci_sb700nam  56VDEVICE{u8as2="sref">AHCIu8ci_s *nam  56VDEVICE{d2h_firas2="sref">AHCId2h_firci_s =       AHCIrx_firci_s +       AHCIRX_FIS_D2H_REGci_s;code=board_ahci_sAMDbis using 5eerhref="5_ahci_sPanther Point RAI5board548ci_sb700struct nam  56VDEVICE{ntaVtaskfill hrNVIDIAlass="ntaVtaskfillci_s nam  56VDEVICEtfysb700n cli" ctraGci_s;code=board_ahci_sAMDbis using 5r9="drhre4_ahci_sPanther Point RA54boar5429ci_sb700nam  56VDEVICE=bool hrNVIDIAlass="boolci_s nam  56VDEVICE{onlinl hrNVIDIAlass="onlinlci_s;code=board_ahci_sAMDbis using 4code=boa54_ahci_sPanther Point RA54boar54ahci_sb700int nam  56VDEVICE{rc hrNVIDIAlass="rcci_s;code=board_ahci_sAMDbis using 4cf="drhr54_ahci_sPanther Point RA54boar545hci_scode=board_ahci_sAMDbis using54cf="drhr54hci_sb700,       h>311{
,       nam  56VDEVICE{ntaVfNVinil hrNVIDIAlass="ntaVfNVinitI34AHCIahckci_s->h>311{
AHCnntaVfNtox_figI34AHCId2h_firci_s);code=board_ahci_sAMDbis using 4eerhref="4ard_ahci_sLynx Point RA54boar5528ci_scode=board_ahci_sAMDbis using 4chref="s54ard_ahci_sLynx Point RA54boar5529ci_sb700nam  56VDEVICE{rc hrNVIDIAlass="rcci_s =       AHCIahckci_s,>      AHCIahckci_s->h>311{
h>311{
,               *ASUS P5W-DH Deluxe1 doesn'tsendn sigcature FISaftl  Iref="+code=board_ahci_sAMDbis using 4ef="drhre4_ahci_sLynx Point-LP RA54boar56ahci_s,                _hardrese  ifno "devicY is ttachtid oe thefirst1 dwn>steramIref="+code=board_ahci_sAMDbis using 4cerhref=54_ahci_sLynx Point-LP RA54boar56ahci_sn               * portb&&the pseudoe"devicYlocks upY"onSRST w/ PMP==0.  Torhref="+code=board_ahci_sAMDbis using 4eerhref="4sref">board_ahci_sb600254   256+code=>                work arounid thi, waitE for! BSY"oly briefly.  Ifr BSYiesn'rhref="+code=board_ahci_sAMDbis using 4chref="s54cod to avoid IDE functi54 oar546ver_=>                fcleaed, per fom CLO aenoprocetid oeIDENTIFY (achievtidbyrhref="+code=board_ahci_sAMDbis using 4 href  554NY_IDflags" class="s  554NY_I547hci_s,               *ATA_LHFLAGNO_SRST aenoATA_LHFLAGASSUME_ATA)t." class=ne" name="L73">  mcpo7    ver4 f="drhr54 name="L114"> 114  54    547hci_s,               ." class=ne" name="L73">  mcpo7    ver4cf="drhr54ction with IDE "+cod re54 oar54ahci_s,               *WaitE fortwotsefcods.  Ddevicis ttachtid oe dwn>stera{"portcief="+code=board_ahci_sAMDbis using54 f="drhr54 name="L114"> 114  54    57ahci_s,               *which casn'tprocesse theffollolingIDENTIFY aftl d thi willtcief="+code=board_ahci_sAMDbis using54cf="+cod54 name="L114"> 114  54    57ahci_s,               *haved oebce rese again.  Fformost1casei,  thi shouldtcief="+code=board_ahci_sAMDbis using54cf="drhr54s="sref">board_ahci_vt25451<257ahci_s,               *suffvicYwhile makling"prolingsnappish enrougt." class=ne" name="L73">  mcpo7    ver4ef="drhre4ef="+code=board_ahci_sA54boar57ahci_s,               *rhref="+code=board_ahci_sAMDbis using54 erhref=54ode=board_ahci_sAT"bSB654boar575hci_sb700if /a>311{
        h>311{
AHCIahckci_s,>      AHCjiffveirci_s +2  *>      AHCHZrci_s,code=board_ahci_sAMDbis using 4 href="s54board_ahci_sAT"bSB2                        a>        h>311{
       >if /a>311{
       >        h>311{
return nam  56VDEVICE{rc hrNVIDIAlass="rcci_s;code=board_ahci_sAMDbis using 4ef="+cod54ode=ent" class="sref">254t,       AHC"devget_drv_dv"gI34311{
m254g311{
AHCIpahcate_dv" ci_s;code=board_ahci_sAMDbis using54href="dr54ef="+code=board_ahci_sV54boar598hci_sb700void       311{
AHCIuahci_s nam  56VDEVICEctol hrNVIDIAlass=ctooci_s;code=board_ahci_sAMDbis using54ef="drhr54de=board_ahci_sVIAbVT,       ahci_sh254/a>254a hr_sb700if /a>311{
311{
h>311{
AHCIflag_ci_sb& h>311{
,               nam  56VDEVICE"dever   hrNVIDIAlass="dever gI34311{
700        /n       "BIOS updnate reqiredE for_suspen/_resuoR\n"href="+);code=board_ahci_sAMDbis using 4rerhref=54="+code=board_ahci_sMCP54boar5978ci_sb700       >return -nam  56VDEVICE{IOv hrNVIDIAlass={IOoci_s;code=board_ahci_sAMDbis using54rhref="s54="+code=board_ahci_sMCP54boar54ahci_sb700,       if /a>311{
311{
ahci_sh265boar60ahci_s,                      * transiptio ofe theHBArto*D3e sttet." class=ne" name="L73">  mcpo7    ve65e5="drhr65=+code=board_ahci_sNVID65boar60ahci_s,                      **rhref="+code=board_ahci_sAMDbis using65ef="drhr65="+code=board_ahci_sMCP65boar6506ci_sb700        nam  56VDEVICEctol hrNVIDIAlass=ctooci_s =       700 nam  56VDEVICEctol hrNVIDIAlass=ctooci_sb&= ~                             h>311{
,         mcpo7    ve65e5="drhr65="+code=board_ahci_sMCP65boar61ahci_sstatic int nam  56VDEVICE"namNVpmNVdevice_resuod hrNVIDIAlass="namNVpmNVdevice_resuod56VAHC"devget_drv_dv"gI34311{
int nam  56VDEVICE{rc hrNVIDIAlass="rcci_s;code=board_ahci_sAMDbis using65d9="drhr65    ,65    617ver_sb700,       311{
,       if /a>311{
311{
       >if /a>311{
700        >return nam  56VDEVICE{rc hrNVIDIAlass="rcci_s;code=board_ahci_sAMDbis using65e8="drhr65code=board_ahci_sPCH RA65boar6528ci_scode=board_ahci_sAMDbis using65"9="drhr65code=board_ahci_sPCH RA65boar620hci_sb700        h>311{
h>311{
return  ;code=board_ahci_sAMDbis using65r5="drhr65code=board_ahci_sCPT re65boar653hci_s}code=board_ahci_sAMDbis using65ef="drhr65code=board_ahci_sCPT RA65boar653hci_#penif}code=board_ahci_sAMDbis using65e7="drhr65code=board_ahci_sCPT RA65boar631hci_scode=board_ahci_sAMDbis using65rerhref=65code=board_ahci_sCPT RA65Dboa63ahci_sstatic int nam  56VDEVICE{namNfconfigur_dma_"masiras2="sref">AHCnnamNfconfigur_dma_"masid56V,               *value, dosn'textendnit here. Tthi happensY"onSTA2X11,E forex&amlet." class=ne" name="L73">  mcpo7    ve65ef="drhr65_ahci_sPanther Point re65boar64ahci_s,               *rhref="+code=board_ahci_sAMDbis using65ef="drhr65_ahci_sPanther Point re65boar6546ci_sb700if /a>311{
if /a>311{
,          ! nam  56VDEVICE{pmNeset=ma_"masv hrNVIDIAlass={pmNeset=ma_"maslI34,               nam  56VDEVICE{rc hrNVIDIAlass="rcci_s =       ,       ,               if /a>311{
                nam  56VDEVICE{rc hrNVIDIAlass="rcci_s =       ,               if /a>311{
                nam  56VDEVICE"dever   hrNVIDIAlass="dever gI34311{
       0                n       "64-bit DMA ensabecfailedR\n"href="+);code=board_ahci_sAMDbis using64cerhref=6E{p ev hrNVIDIAlass="p e64boar656hci_sb700700                >return nam  56VDEVICE{rc hrNVIDIAlass="rcci_s;code=board_ahci_sAMDbis using64eerhref=64ard_ahci_sLynx Point RA64boar6508ci_sb700               s}code=board_ahci_sAMDbis using64chref="s64ard_ahci_sLynx Point RA64boar650hci_sb700       s}code=board_ahci_sAMDbis using64code=boa64_ahci_sLynx Point-LP re64boar6460ci_sb700,               nam  56VDEVICE{rc hrNVIDIAlass="rcci_s =       ,               if /a>311{
                nam  56VDEVICE"dever   hrNVIDIAlass="dever gI34311{
"32-bit DMA ensabecfailedR\n"href="+);code=board_ahci_sAMDbis using64cf="+cod64_ahci_sLynx Point-LP RA64boar660 hr_sb700       >return nam  56VDEVICE{rc hrNVIDIAlass="rcci_s;code=board_ahci_sAMDbis using64cf="drhr64_ahci_sLynx Point-LP RA64boar6685ci_sb700        }code=board_ahci_sAMDbis using64ef="drhr64_ahci_sLynx Point-LP RA64boar6606ci_sb700        nam  56VDEVICE{rc hrNVIDIAlass="rcci_s =       ,       700 if /a>311{
board_ahci_sb600264   26608ci_sb700                nam  56VDEVICE"dever   hrNVIDIAlass="dever gI34311{
                        n       "32-bit fcosistene DMA ensabecfailedR\n"href="+);code=board_ahci_sAMDbis using64 href  564NY_IDflags" class="s  564NY_I6760ci_sb700               >return nam  56VDEVICE{rc hrNVIDIAlass="rcci_s;code=board_ahci_sAMDbis using64 f="drhr64 name="L114"> 114  64    678hci_sb700        }code=board_ahci_sAMDbis using64cf="drhr64ction with IDE "+cod re64 oar6782ci_sb700 114  64    6783ci_sb700return  ;code=board_ahci_sAMDbis using64cf="+cod64 name="L114"> 114  64    6784ci_s}code=board_ahci_sAMDbis using64cf="drhr64s="sref">board_ahci_vt26451<2673hci_scode=board_ahci_sAMDbis using64ef="drhr64ef="+code=board_ahci_sA64boar67ahci_sstatic void       ,       struct nam  56VDEVICE{pmNV ev hrNVIDIAlass="pmNV evci_s *nam  56VDEVICE{p ev hrNVIDIAlass="p evci_s =       311{
nam  56VDEVICEu5code=boardAlass=u5coci_> nam  56VDEVICEcrc hrNVIDIAlass=crcci_s;code=board_ahci_sAMDbis using64ef="+cod64board_ahci_sAT"bSB2AHCscc_icci_s;code=board_ahci_sAMDbis using64 f="drhr64board_ahci_sAT"bSB2h>311{
311{
264t        nam  56VDEVICEscc_iras2="sref">AHCscc_icci_s = n       "IDEn"href=");code=board_ahci_sAMDbis using64cf="drhr64ef="+code=board_ahci_sA64boar6885ci_sb700311{
AHCscc_icci_s = n       "SPATn"href=");code=board_ahci_sAMDbis using64 erhref=64onlysb700n cli" ctroll 64boar6875ci_sb700311{
AHCscc_icci_s = n       "RAIIn"href=");code=board_ahci_sAMDbis using64 href="s64="L108" class="line" na64="L1681hci_sb700m264g              AHCscc_icci_s = n       "unknownn"href=");code=board_ahci_sAMDbis using64href="dr64ef="+code=board_ahci_sV64boar694hci_scode=board_ahci_sAMDbis using64ef="drhr64de=board_ahci_sVIAbVTh>311{
311{
AHCscc_icci_s);code=board_ahci_sAMDbis using64ef="drhr64de=board_ahci_sVIAbVTahci_sh264/a>2691 hr_s=ne" name="L73">  mcpo7    ve64cf="drhr64"+code=board_ahci_sNVID64boar69ahci_s,              stera* portor acrseasea _harware storagcrcref="+code=board_ahci_sAMDbis using64 href="s64="+code=board_ahci_sMCP64boar696ver_=>         mcpo7    ve75ef="drhr75="+code=board_ahci_sMCP75boar707hci_s,       stera* portofe thrhref="+code=board_ahci_sAMDbis using753f="drhr75de=board_ahci_sVIAbVTahci_sh275boar70ahci_s,         mcpo7    ve757f="drhr75="+code=board_ahci_sMCP75boar70ahci_sn         mcpo7    ve758f="drhr75="+code=board_ahci_sMCP75boar70+code=>         mcpo7    ve759f="drhr75="+code=board_ahci_sMCP75boar706ver_=>         mcpo7    ve75ef="drhr75="+code=board_ahci_sMCP75boar717hci_s,         mcpo7    ve75ef="drhr75="+code=board_ahci_sMCP75boar71ahci_s,       ,       static/struct nam  56VDEVICEdmi_system_iio hrNVIDIAlass=dmi_system_iioci_> nam  56VDEVICEsysidiras2="sref">AHCsysidioci_[]s =s{b700,              s{b700,       700         .      "P5W DH Deluxen"href="+{b700,                       .      AHCmatchticci_s =s{b700,       ,75    711hci_sb700                        nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"ASUSTEK COMPUTER INCn"href="+s{b700,              >                nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"P5W DH Deluxen"href="+s{b700,                      }s{b700,              }s{b700,              {as}code=board_ahci_sAMDbis using75"5="drhr75="+code=board_ahci_sICH75boar72ahci_sb700311{
if /a>311{
AHCbuivci_s->h>311{
,           nam  56VDEVICEdmi_chtckNsystemo hrNVIDIAlass=dmi_chtckNsystemvI34311{
AHCsysidioci_)<) {b700,              >struct nam  56VDEVICE{ntaVportas2="sref">AHCIntaVportci_s *nam  56VDEVICE{ap hrNVIDIAlass="apci_s =       ,       311{
"ensablingASUS P5W DH Deluxe on-boharnSIMG4726 workarouniR\n"href="+);code=board_ahci_sAMDbis using75rf="drhr75code=board_ahci_sCPT re75boar731 hr_s=ne" name="L73">  mcpo7    ve75r5="drhr75code=board_ahci_sCPT re75boar73ahci_sb700311{
        nam  56VDEVICE{ap hrNVIDIAlass="apci_s->h>311{
AHCIahckci_ .      AHCIflag_ci_s| =       AHCATA_LHFLAGNO_SRST_ci_s|=       AHCATA_LHFLAGASSUME_ATAcci_s;code=board_ahci_sAMDbis using757f="drhr75code=board_ahci_sCPT RA75boar736hci_sb700static;h>311{
 nam  56VDEVICEanamNsb600_ensabe_64bitv hrNVIDIAlass=anamNsb600_ensabe_64bitd56Vstaticfcost /struct nam  56VDEVICEdmi_system_iio hrNVIDIAlass=dmi_system_iioci_> nam  56VDEVICEsysidiras2="sref">AHCsysidioci_[]s =s{b700,               ,         mcpo7    ve75eerhref=75_ahci_sPanther Point RA75boar74ahci_sn                      *sEnsabec64bit DMA ond1501taenoanythlingnewert." class=ne" name="L73">  mcpo7    ve75rerhref=75_ahci_sPanther Point RA75boar74+code=>                      *." class=ne" name="L73">  mcpo7    ve75"9="drhr74_ahci_sPanther Point RA74boar746ver_=>                      *sPlease Vrad bko#9412E formorheVifot." class=ne" name="L73">  mcpo7    ve74code=boa74_ahci_sPanther Point RA74boar757hci_s,                      **rhref="+code=board_ahci_sAMDbis using74cf="drhr74_ahci_sPanther Point RA74boar758hci_sb700       s{b700,       ,                       .      "ASUS M2A-VMn"href="+{b700,                       .      AHCmatchticci_s =s{b700,                       nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
                          n       "ASUSTeK Computl eINC.n"href="+s{b700,              0        nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"M2A-VMn"href="+s{b700,       AHC      e_dv"cci_s = n       "20071026n"href="+       n         mcpo7    ve74cf="drhr74_ahci_sLynx Point-LP RA74boar76ahci_s,                      *." class=ne" name="L73">  mcpo7    ve74ef="+cod74_ahci_sLynx Point-LP RA74boar76ahci_s,                      * BIOS hci_tiosEearlil e t   1.5 haid tegManufacaturr DMI." class=ne" name="L73">  mcpo7    ve74ef="drhr74_ahci_sLynx Point-LP RA74boar76ahci_s,                      *sfieldsease>"MICRO-STAR INTERANTIONAL CO.,LTIn"t." class=ne" name="L73">  mcpo7    ve74ef="drhr74_ahci_sLynx Point-LP RA74boar76ahci_s,                      *sTthi spelblingmi>stke was fixedgin BIOS hci_tio 1.5, sorhref="+code=board_ahci_sAMDbis using74cerhref=74_ahci_sLynx Point-LP RA74boar76ahci_sn                      *s1.5 aenolnatr haved tegManufacaturr aircref="+code=board_ahci_sAMDbis using74eerhref=74sref">board_ahci_sb600274   276+code=>                      *e>"MICRO-STAR INTERNATIONAL CO.,LTIn"t." class=ne" name="L73">  mcpo7    ve74"9="drhr74cod to avoid IDE functi74 oar766ver_=>                      *sSo tryd oematch ondDMI_BOARD_VENDOR ofe>"MICRO-STAR INTERn"t." class=ne" name="L73">  mcpo7    ve74 href  574NY_IDflags" class="s  574NY_I777hci_s,                      *." class=ne" name="L73">  mcpo7    ve74cf="drhr74 name="L114"> 114  74    777hci_s,                      * BIOS hci_tiosEearlil e t   1.9 haida BoharnProdructNamercref="+code=board_ahci_sAMDbis using74cf="drhr74ction with IDE "+cod re74 oar77ahci_s,                      * DMIsfield ofe>"MS-7366n"tsTthi was ct  gtid oebercref="+code=board_ahci_sAMDbis using74cf="drhr74 name="L114"> 114  74    77ahci_s,                      * n"K9A2sPltatnum (MS-7366) " in hci_tio 1.9, but we cas stilltcief="+code=board_ahci_sAMDbis using74cf="+cod74 name="L114"> 114  74    77ahci_s,                      * match ondDMI_BOARD_NAME ofe>"MS-7366n"ttcief="+code=board_ahci_sAMDbis using74ef="drhr74s="sref">board_ahci_vt27451<277ahci_s,                      **rhref="+code=board_ahci_sAMDbis using74ef="drhr74ef="+code=board_ahci_sA74boar7706ci_sb700       s{b700,       700         .      "MSI K9A2sPltatnumn"href="+{b700,                       .      AHCmatchticci_s =s{b700,                               nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
                                  n       "MICRO-STAR INTERn"href="+s{b700,              >                nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"MS-7366n"href="+s{b700,                      }s{b700,              }s{b700,       274t        ,                      *sAll BIOS hci_tiosE forttheMSI K9AGM2 (MS-7327) sup porrhref="+code=board_ahci_sAMDbis using74ef="drhr74=board_ahci_sAMDbHudson74boar78ahci_s,                      *s64bit DMAt." class=ne" name="L73">  mcpo7    ve74 erhref=74onlysb700n cli" ctroll 74boar78ahci_sn                      *." class=ne" name="L73">  mcpo7    ve74 erhref=74NY_IDflags" class="s  574NY_I78+code=>                      *eTthi boharnalso haid tegtypoemasstiotidabovheVie thrhref="+code=board_ahci_sAMDbis using74 href="s74="L108" class="line" na74="L1786ver_=>                      *sManufacaturr DMIsfield (fixedgin BIOS hci_tio 1.5), sorhref="+code=board_ahci_sAMDbis using74" class274e=mesg" class="sref">m274g               *ematch ondDMI_BOARD_VENDOR ofe>"MICRO-STAR INTERn" againt." class=ne" name="L73">  mcpo7    ve74href="dr74ef="+code=board_ahci_sV74boar797hci_s,                      **rhref="+code=board_ahci_sAMDbis using74ef="drhr74de=board_ahci_sVIAbVT       s{b700,                       .      "MSI K9AGM2n"href="+{b700,       ahci_sh274/a>2790 hr_sb700        .      AHCmatchticci_s =s{b700,                       nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"MICRO-STAR INTERn"href="+s{b700,       700                 nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"MS-7327n"href="+s{b700,                      ss{b700,              ss{b700,               ,         mcpo7    ve85ef="drhr85="+code=board_ahci_sMCP85boar80ahci_s,       ahci_sh285boar8004ci_sb700       {+code=board_ahci_sAMDbis using8553="drhr85"+code=board_ahci_sNVID85boar80ahci_sb700        .      "ASUS M3An"href="+{b700,              0AHCmatchticci_s =s{b700,       700                 nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"ASUSTeK Computl eINC.n"href="+s{b700,                               nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"M3An"href="+s{b700,                      ss{b700,               s{b700,              sas}code=board_ahci_sAMDbis using85e3="drhr85="+code=board_ahci_sMCP85boar8103ci_sb700 *nam  56VDEVICEmatchras2="sref">AHCmatchcci_s;code=board_ahci_sAMDbis using85e5="drhr85="+code=board_ahci_sMCP85boar81ahci_sb700int nam  56VDEVICEyea   hrNVIDIAlass=yea vci_s  nam  56VDEVICEmonthras2="sref">AHCmonthvci_s  nam  56VDEVICEdtte  hrNVIDIAlass=dttecci_s;code=board_ahci_sAMDbis using85ef="drhr85code=board_ahci_sL_iux 85boar8106ci_sb700311{
,       AHCmatchcci_s =       AHCdmi_first_matchd56V311{
AHCsysidioci_)psb700,       ,85    81ahci_sb700if /a>311{
AHCbuivci_s->h>311{
,          ! nam  56VDEVICEmatchras2="sref">AHCmatchcci_s)code=board_ahci_sAMDbis using85ef="drhr85+code=board_ahci_sTolap85boar828hci_sb700       >return nam  56VDEVICEfalse  hrNVIDIAlass=falsecci_s;code=board_ahci_sAMDbis using85ef="drhr85+code=board_ahci_sTolap85boar820hci_;code=board_ahci_sAMDbis using85e3="drhr85="+code=board_ahci_sICH85boar8203ci_sb700if ! nam  56VDEVICEmatchras2="sref">AHCmatchcci_s->h>311{
AHC      e_dv"cci_s)code=board_ahci_sAMDbis using8543="drhr85="+code=board_ahci_sICH85boar8204ci_sb700       go oe;h>311{
AHCscc_icci_s = n       "SPATn"href=");code=b6 =span cl67as=");code=b6 =span pan class=275"970031, sizeof=tte  hrNVIDIAla8106ci_sb70031)MEc hrNVIDIAlass=DMI_BOARD_NA%04d%02d%02d&n       int nam  56VDEVICEyea   hrNVIDIAlass=yea vci_s  nam  56VDEVICEmonthras2="sref">AHCmonthvci_s  nam  5=");code=b6 =span cl67as=");code=bci_scode=board_ahci_sAMDbis using85e8="82f=65_ahci_sPanther Point RA65boar648&sb7008/a>,       ,85   s=Dcmci_sb700    s=Dcmcgset=tte  hrNVIDIAla8106ci_sb70031, ahci_sICH85boar8203ci_sb700if ! nam  56VDEVICEmatchras2="sref">AHCmatchcci_s->h>311{
AHC      e_dv"c)<) {b7008/a>,              go oe;h>311{
,       _warsgset=devinfio hrNVIDIAlass="devinfigI34311{
        .        mcpo7    ve85r5="8rhr75code=board_ahci_ssTolap85boar828hci_sb700       >return nam  56VDEVICEfalse  hrNVIDIAlass=falsecci_s;code8board_ahci_sAMDbis using85ef="8rhr75code=boarsMCP85boar810hci_sb700      ci_s;code8board_ahci_sAMDbis using857f="83hr85code=board_ahci_sL_iux 85boar811       go oe;h>311{
        .      ,       static;h>311{
,       staticfcost /struct nam  56VDEVICEdmi_system_iio hrNVIDIAlas  *sTtVICEdmilass="p evci_s-&g *sTtVICEdmilh>311ICEsysidiras2="sref">AHCsysidioci_[8ef="+code8board_ahci_sAMDbis using85ef="84hr74ef="+code=board_ahci_sA74boar7706ci_sb700   8class=ne"8name="L73">  mcpo7    ve85eerh84f=74ode=board_ahci_sAT"bSB674boar776hci_sb700700         .        mcpo7    ve85rerh84f=74board_ahci_sAT"bSB2                .      AHCmatchticci8class=ne"8name="L73">  mcpo7    ve85"9="84hr75    ,75    711hci_sb700                        nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"M3An"hrefclass=ne"8name="L73">  mcpo7    ve84code85od74board_ahci_sAT"bSB2                        nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"M3An"hrefcf="+code8board_ahci_sAMDbis using84cf="8rhr74_ahci_sPanther Poooooooooi_sMCP85boar818hci_sb700        s{b7008/a>,       ,       "20071026n"hre P5Wslot h>311{eo the47oar696ver_=     ,                       .             =s{b7008/a>,             f="+code8/a>,       AHCmatchticci8="+s{b7008/a>,       700         .      ,       AHCmatchticci8  }s{b7008/a>,                               nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"M3An"hrefclass=ne"8board_ahci_sAMDbis using84"9="8rhr74ard_ahci_sLynx Point RA74                            nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"M3An"href  ss{b7008/a>,            ef="+code8board_ahci_sAMDbis using84cf="86hr74_ahci_sPanther Pooooooooo">"20071026n"hre P5Wslot h>311{eo the47oar696ver_=       mcpo7    ve84cf="86hr74board_ahci_sAT"bSB2    8class=ne"8name="L73">  mcpo7    ve84ef="86hr75code=board_ahci_sCPT re75boar738class=ne"8name="L73">  mcpo7    ve84ef="86hr74ard_ahci_sLynx Poa }ooooo">"20071026n"hretermin na  mcpo7    ve84ef="86hr75code=boarsDEVICEfalse  hrNVIDIAlass=falsecef="+code8board_ahci_sAMDbis using84cerh86f=7E{p ev hrNoard_ahci_sMCP85boar8104ci_sb700AHCmatchcci_s =       AHC  *sTtVICEdmilass="p evci_s-&g *sTtVICEdmilh>31=");code=b6 =span cl67as=");code=ef="+code8board_ahci_sAMDbis using84eerh86f=65_ahci_sPanther Point RA65boar648class=ne"8name="L73">  mcpo7    ve84"9="86hr85    ,85   VDE/struct nam  56VDE 56Vrefsysidiras2="sref">AHCsysidioci8class=ne"8name="L73">  mcpo7    ve84 hre87oa74_ahci_sLynx Pointun    ed longrd_ahci_sPCH re8sloti_sb700    slot    e_d(un    ed long)sb700,85   VDE/struct nam  56VDE 56VDEVICEmatchras2="sref">AHCmatchcci_s->h>311{
  mcpo7    ve84cf="87hr74_ahci_sPanther Po">"20071026n"hreapplythe47quirkboar74s,       AHC=numbl cci_s!==0s||=       ,       static;h>311{
,       AHCsysidioci8ci_s{b7008/a>,       staticfcost /struct nam  56VDEVICEdmi_system_iio hrNVIDIAlass=dmi_system_iioci_> nam  56VDEVICEsysidiras2="sref">AHCsysidioci_[8="+s{b7008/a>,               ,       ,           spanen,31a>        ,       ,        114  74    77ahci_s,    hene thoar7disk_s,               ,       ,        114  74    77ahci_s,    resum=>   ddddSTR.  Waap8spanfail Iusd* _E forttheAsus M3A sup port64bit DMAt." ef="+code8board_ahci_sAMDbis using84cf="8rhr74ef="+code=board_ahci_sA74boar78ahci_s,    forttheAsus M3A sup port64bit DMAt." ef="+code8board_ahci_sAMDbis using84ef="8rhr74=board_ahci_sAMDbHudson74boar78ahci_s,    http://bugzilla.kernel.org/show_bug.cgi?+co122rhr7orttheAsus M3A sup port64bit DMAt." ef="+code8name="L73">  mcpo7    ve84 erh8ef=74onlysb700n cli" ctroll 74boar78ahci_sn                      *."8class=ne"8name="L73">  mcpo7    ve84 erh8ef=74NY_IDflags" class="s  574NY_I78+code=>    Use   nas iBG  claofss=2ddddddn class=2as HP iesn'd recivtidsoon,eATAe   m274g  mcpo7    ve84href8"dr74ef="+code=board_ahci_sV74boar797hci_s,   P==0 aenohasebunch ofeo thr issuest."8c"+s{b7008board_ahci_sAMDbis using84ef="89hr85="+code=board_ahci_sMCP85boar80ahci_s,    http://bugzilla.kernel.org/show_bug.cgi?+co1546hr7=0 aenohasebunch ofeo thr issuest."8cf="+code8/a>,       ,       ahysidiras2="sref">AHCsysidioci_[8s =s{b7008/a>,       700         .                      .      AHCmatchticci8="+s{b7008/a>,       700                 nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"M3An"href="+s{b7008/a>,       700                 nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"M3An"href=f="+code8/a>,       "ASUSTEK COMPUTER INCn"hre9  ss{b7009/a>,           9ef="+code9board_ahci_sAMDbis using95ef="90hr74_ahci_sPanther Poooooooooboar7508ci_sb700                .      AHC      e_dv"cc90h05 n       "20071026n"hreF.30        mcpo7    ve95ef="90hr74hci_sb700,   B2    9e3ass=ne"9na>,       AHCmatchticci9ef="+code9board_ahci_sAMDbis using9543="9rhr85" class="sref">ahooooooooboar7508ci_sb700700         .                      .      AHCmatchticci9f="+{b7009/a>,       700                 nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"M3An"hre9s =s{b7009/a>,       700                 nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"M3An"hre9ci_s{b7009/a>,                      a>        HP Pavilaturdv5 Notec;hk Ppanstring">"ASUSTEK COMPUTER INCn"hre9 9_s{b7009/a>,           9="+s{b7009/a>,                       .      AHC      e_dv"cc9050= n       "20071026n"hreF.16      ,           9   s{b7009/a>,           9 3ass=ne"9board_ahci_sAMDbis using95e3="91hr74de=board_ahci_sVIAbVT                .      ahci_sh274/a>2790 hr_sb700        .      AHCmatchticci9ci_s;code9board_ahci_sAMDbis using95e5="91hr74"+code=board_ahci_sNVID74boar79ahci_sb700                nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"M3An"hre9ci_s;code9board_ahci_sAMDbis using95ef="91hr85="+code=board_ahci_sMCP8555555555ci_sb700700                 nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"M3An"hre9[9]psb7009/a>,                      a>        HP Pavilaturdv6 Notec;hk Ppanstring">"ASUSTEK COMPUTER INCn"hre9hci_scode9board_ahci_sAMDbis using958f="91hr85="+code=board_ahci_sMCP85i_sMCP85boar818hci_sb700    9 9_s{b7009/a>,                       .      AHC      e_dv"cc90423 n       "20071026n"hreF.21      ,           9ci_s)code9board_ahci_sAMDbis using95ef="9rhr85+code=board_ahci_atchtiras2="sref">AHCmatchticci9ci_s;code9board_ahci_sAMDbis using95ef="92hr74hci_sb700,                       .              .      AHCmatchticci9ci_s)code9board_ahci_sAMDbis using9543="9rhr85="+code=board_ahcccccccccccccccccci_sb700                nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"M3An"hre956Vs;code9board_ahci_sAMDbis using95e5="92hr74"+code=board_ahci_sNVID74boar79ahci_sb700                nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"M3An"hre9hci_scode9board_ahci_sAMDbis using95ef="92co74="+code=board_ahci_sMCP74boar7906ci_sb700       0         HP HDX18cNotec;hk Ppanstring">"ASUSTEK COMPUTER INCn"hre9b6 =span 9an class=275"9700                .      AHC      e_dv"cc90430 n       "20071026n"hreF.23      ,           9)<) {b7009/a>,               ,       ,               ,               ,       ,        114  74    77ahci_s,       <.  setween,        ,        114  74    77ahci_s,    tha (MS-do      muchs)ceai bout.  For    ,        ,         mcpo7    ve95r5="93hr74ef="+code=board_ahci_sA74boar78ahci_s,    blackliG R    *sEnsspan       V3.04MP==0 aenohasebunch ofeo thr issuest."9ci_s;code9board_ahci_sAMDbis using95ef="93hr74=board_ahci_sAMDbHudson74boar78ahci_s,   P==0 aenohasebunch ofeo thr issuest."9c6 =span 9board_ahci_sAMDbis using957f="93f=74_ahci_sLynx Point-LP RA74boar76ahci_sn    http://bugzilla.kernel.org/show_bug.cgi?+co151rhr8=0 aenohasebunch ofeo thr issuest."9cci_scode9board_ahci_sAMDbis using95rerh93f=74NY_IDflags" class="s  574NY_I78+code=>       AHCmatchticci9ver_sb7009/a>,                       .      AHCmatchticci9ci_s)code9board_ahci_sAMDbis using95rf="94hr74hci_sb700,                       nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"ASUSTEK COMPUTER INCn"hre9ci_ {b7009/a>,                       nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"ASUSTEK COMPUTER INCn"hre9ci_s)code9/a>,           9ef="+code9board_ahci_sAMDbis using95ef="94hr85"+code=board_ahci_sNVID85boar80ahci_sb700                .      AHC      e_dv"cc9121= n       "20071026n"hreV3.04n         9e6 =span 9name="L73">  mcpo7    ve95eerh94f=74ode=board_ahci_sAa }ooooo">"20071026n"hretermin na  mcpo7    ve95rerh94f=74board_ahcsDEVICEfalse  hrNVIDIAlass=false9class=ne"9name="L73">  mcpo7    ve95"9="94hr75    AHCmatchcci_s =       AHCdmi_first_matchd56V311{
AHCsysidio9class=ne"9name="L73">  mcpo7    ve94code95od74board_ahcoard_ahci_sMCP85boar81ahci_sb700int nam  56VDEVICEyea   hrNVIDIAlass=yea vci_s  nam  56VDEVICEmonthras2="sref">AHCmonthvci_s  nam  56VDEVICEdtte  hrNVIDIAlass=dtte9cf="+code9board_ahci_sAMDbis using94cf="9rhr74_ahci_sPad_ahci_sL_iux 85boar8106ci_sb700311{
,       ,       AHCbuivci_s->h>311{
       >return nam  56VDEVICEfalse  hrNVIDIAlass=false9 f="+code9/a>,       ,       311{
AHCscc_icci_s = n       AHCmonthvci_s  nam  5hrefsysidiras2="sref">AHCsysidio9c6 =span 9/a>,       31, sizeof=tte  hrNVIDIAla8106ci_sb70031)MEc hrNVIDIAlass=DMI_BOARD_NA%04d%02d%02d&n       int nam  56VDEVICEyea   hrNVIDIAlass=yea vci_s  nam  56VDEVICEmonthras2="sref">AHCmonthvci_s  nam  5=");code=b6 =span cl67as=");code9  }s{b7009/a>,       AHCmatchcci_s->h>311{
static;h>311{
statiNVIDI  *sTtVoarspagset=IAlass=anamNsb600_ensabe_64bitd56V  mcpo7    ve94cf="96hr74batchtiras2="sref">AHCmatchticci9class=ne"9name="L73">  mcpo7    ve94ef="96hr75c#defspab{pmNV ev hrNVIDENCODE_BUSss="defncci_s!==    ENCODE_BUSss="dgset=tte  hrNVIDIAla81lass="p evci_s->h>31, ahci_sICH85boarsloti_sb700    slot    , ahci_sICH85boarfunc>       >return unc    )                        \tchtiras2="sref">AHCmatchticci9cf="+code9name="L73">  mcpo7    ve94ef="96hr74ard_ahci_(board*)(un    ed long)((=tte  hrNVIDIAla81lass="p evci_s->h>31) << 8) bl   hrNVIDIAlassIAlass="defncci_s!==       AHCdloti_sb700    slot    )MEhras2="sref">AHCfunc>       >return unc    ))6VDEVICE{p ev hrNVIDIAlass="p e9e"+s{b7009name="L73">  mcpo7    ve94ef="96hr75code=board_ahci_sPBG RA75boar7403ci_sb700staticfcost /struct nam  56VDEVICEdmi_system_iio hrNVIDIAlass=dmi_system_iioci_> nam  56VDEVICEsysidiras2="sref">AHCsysidioci_[9ef="+code9board_ahci_sAMDbis using94cerh96f=74ode=board_ahci_sAi_sMCP85boar8060ci_sb700        ,         mcpo7    ve94"9="96"s74="L108" class="line" na74="L1786ver_=>    SIMG5723s_sPBfigurthi shoar7ware RAID.  Certaidsn'd recivtidsoon,eATAe     mcpo7    ve94 hre97s274e=mesg" class="sref">m274g31a>        ,         mcpo7    ve94cf="97hr85="+code=board_ahci_sMCP85boar807hci_s,    oarspabbutnfail to answersptiperr74s, SRST o131a>        ,               ,        114  74    77ahci_s,    caussEnslib cl4s, sTory7quitesa few times leadsEn31a>        ,        114  74    77ahci_s,    to excess ,       AHCsysidioci_[9="+s{b7009/a>,                       .      ,       ,               .      AHCmatchticci9=f="+code9/a>,                       nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
,       "ASUSTeK Computl eINC.n"hre9ef="+code9board_ahci_sAMDbis using94cf="98hr74"+code=board_ahci_sNVID74boar79ahci_sb700                nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
  mcpo7    ve94 erh98f=7E{p ev hrNVIDIAlass="p e74boar7708ci_sb700                .          9ef="+code9name="L73">  mcpo7    ve94 erh98f=74ard_ahci_sLynx Poi_sMCP74boar790hci_sb700    9elass=ne"9board_ahci_sAMDbis using94 hre98"s74="+code=board_ahcatchtiras2="sref">AHCmatchticci9ef="+code9board_ahci_sAMDbis using94" cl99hr85="+code=board_ahci_sMCP85boar7508ci_sb700                .        mcpo7    ve94href99hr74_ahci_sPanther Poooooooooboar7508ci_sb700        .      AHCmatchticci9c"+s{b7009board_ahci_sAMDbis using94ef="99hr74hci_sb700,                       nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
,       "ASUSTeK Computl eINC.n"hre9f="+{b7009/a>,       ah                    nam  56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{
"ASUSTEK COMPUTER INCn"hre9s =s{b7009/a>,           9ci_s{b7009/a>,                       .          9="+s{b7009/a>,           9cf="+code9/a>,       "20071026n"hretermin na,       10  r75c#undefdvpmNV ev hrNVIDENCODE_BUSss="defncci_s!==    ENCODE_BUSss="dgset
VICEfalse hrNVIDIAlass=false10 1ss{b70010 ame="L73"> mcpo7 ve10 am>10 hr74_ahci_sPadard_ahci_sMCP85boar8104ci_sb700AHCmatchcci_s = AHCdmi_first_matchd56V311{ AHCsysidse10 2ss{b70010 oard_ahci_sAMDbis using10 oa>10 hr74hci_sb700un ed oard_ahci_sMCP85boavaoar754hci_>stativao 56VDEVICEfalse hrNVIDIAlass=false10 3ss{b70010 a>, >10 3r74_);code=b6 =span cl67as=");code10 4ss{b70010 a>, >10 od74" class="oard_ahci_sICH85boarVDE/struct nam 56VDE 56V6VDEVICE{p ev hrNVIDIAlass="p e10 5ss{b70010 a>, >10 hr75code=board_ahci_ssTolap85boar828hci_sb700 >return nam 56VDEVICEfalse hrNVIDIAlass=false10 6ss{b70010 a>, >10 6r74_);code=b6 =span cl67as=");code10 7ss{b70010 a>, >10 nr85code=board_ahci_sPCH re8vaoar754hci_>stativao 56Ve_d(un ed long)sb700,85 VDE/struct nam 56VDE 56VDEVICEmatchras2="sref">AHCmatchcci_s->h>311{ , >10 f=65_ahci_sPanther Point RA65boar6410 9ss{b70010 a>, >10 hr74ard_ahci_sTolap85boar828hci_sb7=numbl cci_s!==0s||= AHCbuivci_s->h>311{ AHCvaoar754hci_>stativao 56Ve{ AHCvaoar754hci_>stativao 56Ve{_s =l0xffhrefsysidiras2="sref">AHCsysidse101 ss{b70010/a>, >10/aa74_o);code=b6 =span cl67as=");code10/1ss{b70010/a>, >10/hr74_);code=b6 =span cl67as=");code10/2ss{b70010/a>, >10/hr74h#ifdefdvpmNV ev hrNVIDCONFIG_ATA_ACPIar754hci_>statiCONFIG_ATA_ACPIr74_);code=b6 =span cl67as=");code10/3ss{b70010board_ahci_sAMDbis using10boa>10/hr75="+code=boardstatiNVIDIgtfcldlter_ 10/hr75="+code=board_ahsPBG RA75boar7403ci_sb700staticfcost /struct nam 56VDEVICEdmi_system_iio hrNVIDIAlass=dmi_system_iioci_> nam 56VDEVICEsysidiras2="sref">AHCsysidioci_[10/6ss{b70010board_ahci_sAMDbis using10boa>10/co74="+code=board_ahci_sMCP85boar8060ci_sb700 , , >10/f=74_ahci_sLynx Point-LP RA74boar76ahci_sn Aspiref3810T issues a bunchaofsSATA< 47oammandesn'd recivtidsoon,eATAe 10/f=74NY_IDflags" class="s 574NY_I78+code=> via _GTF oacludsEn Dflinvalardopabonrdopabwhich iesn'd recivtidsoon,eATAe , >10/"s74="L108" class="line" na74="L1786ver_=> rejected bythe47*naice. Amongre thsuccessfuldopaesn'd recivtidsoon,eATAe , >10/as74="L108" class="line" na74="L1786ver_=> is FPDMA non-zerohoffset 47which when 4dsn'd recivtidsoon,eATAe 10/hr85="+code=board_ahci_sMCP85boar807hci_s, oary oathe47*oon, Gide leadddn cNCQ7oammandsn'd recivtidsoon,eATAe 10hr74de=board_ahci_sVIAbV10hr75boar80ahci_s, , 10hr85="+code=board_ahcccc10hr85boasref">AHCsysidioci_[8s =s{b7008/a>, 10hr74"+code=board_ahci_sN10hr75boar776hci_sb700700 . mcpo7 boang10boa>10co74="+code=board_ahci_s10co75boar7708ci_sb700 . AHCmatchticci8="+s{b7008/a>, >10f=7E{p ev hrNVIDIAlass="10f=75boar796hci_sb700700 nam 56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{ , 10f=74ard_ahci_sLynx Point10f=75boar796hci_sb700700 nam 56VDEVICEDMI_MATCHKss2 name="L157DMI_MATCHd56V311{ "M3An"href=uxe on-bohar1{ 9="+s{b7009/a>, >10f=75code=board_ahci_si_s10f=7>10f=7708ci_sb700 . AHC=numas=");co_FILTER_ch wh_OFFSE2DOR9cf="+code9/a>, 10hr85="+code=board_ahci_s10hr8>10fr818hci_sb700 9 s{b7009/a>, 10hr74 name="L114"> 11410f67as=");code=e01 ss{b70010/a>, 10od74 name="L114"> 11410fsref">AHCsysiAHCmatchcci_s = AHCdmi_first_matchd56V311{ AHCsysidse10 2ss{b70010 oard_ahci_sAMDb clas3ng10boa>10hr74ef="+code=board_ahci10hr7>10fr776hci_sb700r754hci_>stativao 56VDEVICEfmNsb60lse hrNVIDIAlasNsb60ode10 8ss{b70010 a>, 10hr74=board_ahci_sAMDbHud10hr7>10fr7708ci_sb700stativao 56VDEVICEfchras2="sref">AHiode10 8ss{b70010 a>, >10f=74_ahci_sLynx Point-LP10f=7>10fr811f="+{b7008/a>, 10f=74NY_IDflags" class="s10f=7>10fr796hci_sb700am 56VDE 56V6VDEVICE{p ev hrNVIDIAlass="p e10 5ss{b70010 a>, >10"s74="+code=board_ahcatc10"s7>10f//f74boar7803ci_sb700_s!==00 8ss{b70010 a>, >10hr85="+code=board_ahci_s10hr8>10hr811f="+{b7008/a>, 10hr74_ahci_sPanther Poooo10hr7>10hr818hci_sb700ivao 56VDEVICEfmNsb60lse hrNVIDIAlasNsb60ode1 VDE/struct nam 56VDE 56VDEVICEmatchras2="sref">AHCmatchcci_s->h>311{ , , /hhr7>10h2818hci_sb700ivao 56VDEVICEfaes_info2="sref">AHCvaoar7_infotchd56V311{ AHCvaoar7href=uxe on-bohar1{ mcpo7 bo4t."9ela>10hr75code=board_ahci_sPCH10hr7>10h444447444444444cclidasivao 56VDEVICEfmNsb60lse hrNVIDIAlasNsb60ode1 56VDE 56VDEVICEmatchras2="sref">AHCmatchcci_s->h>311{ 10hr85="+code=board_ahcccc10hr8>10hr738ef="+code8board_ahci_sAMDbis us10hng10boa>10hr85"+code=board_ahci_sN10hr8>10hr776hci_sb700for 56V311{ AHiode1 VD00s||= AHiode1 "defn6V311{ n_portsode10s||= AHiode1++i8class=ne"8name="L73"> mcpo7 10hng10boa>10hr74ef="+code=board_ai_s10hr7>10hr7708ci_sb700 67a_hos stem_porthrNVIDIAlasshos portnam 56VDE 56VDEVICEmahrNVIDIAla8106ciaptchcci_s = portsode1[||= AHiode19 s{b7009/a>, >10f=74ode=board_ahci_sAa }10f=7>10hr796hci_sb700700< 67a_hos stem_ass=hrNVIDIAlasshos ass=2dm 56VDE 56VDEVICEmass=hrNVIDIAlasshosass=2dm s{b7009/a>, 10f=74board_ahcsDEVICEfals10f=7>10hr796hci_sb700700< 67a_hos stem_aesn&#hrNVIDIAlasshos aesn&#nam 56VDE 56VDEVICEmahr2="sref">AHCvaoar7href s{b7009/a>, >10hr75 10h9738ef="+code8board_ahci_sAMDbis us105=210/a>>10od74board_ahcoard_ahci_s10od7>10od8060ci_sb700 67a_hos stem_for_each_ass=hrNVIDIAlasshos for_each_ass=tchd56V311{ , 10hr74_ahci_sPad_ahci_sL_i10hr7>10or7508ci_sb700 67a_hos stem_for_each_ahr2="sref">AHCvaotem_for_each_ahrtchd56V311{ AHCvaoar7href=uxV311{ AHC=numaLLp e10 5ss{b70010 a>, 10o44444ci_sb700 nam 56VDEVEhr2="sref">AHCvaoar7hrefci_s->h>311{ AHCvao=anamNsb604444c|i_s = , 10hr85="+code=board_ahci_s10hr8>10o67as=");code=elass=ne"8board_ahci_sAMDbis us10ong10boa>10od74ard_ahci_sLynx PosTo10od7>10o4ode10/1ss{b70010/a>, 10hr85="+code=board_ahci_s10hr8>10or776h#else/1ss{b70010/a>, 10hr85code=board_ahci_sPCH10hr8>10o6VIDIgtfcldl||= statiNVIDIgtfcldlter_ >10oa74_o);code=b6 =span cl10oa7>10oaVIDIgtfcldlstativao 56VDEVICEfAlassinit_ospagset=IAlass=anamNsbinit_ospos 67a_hos sICE{pmNV ev hrNVIDIAlass="pmNV evci_s *nam 56VDEVICE{p ev hrNVIDIAlass="p e9,i10hr74_);code=b6 =span cl610hr7>10o171a10/5ss{b70010board_ahci_sAMDbis us6ng10boa0/hhr74h"+code=tte hrNVIDI/hhr7>10osMCP85boavaoar754hci_>stativao 56VDEVICEfstiottem_iio hrNVIDIAlastiottemtchcci_s = 311{ , 10hr74batchtiras2="sref">A10hr7>10o67as=");code= 67a_hos stem_port_info2="sref">AHCvaotem_port_info_iioci_> nam 56VDEVpchras2="sref">AHpatchcci_s = AHCvaotmNsbport_infoode1[||= , 10hr75c#defspab{pmNV ev hr10hr7>10osref">AHCsysiAHCvaotem_port_info_iioci_s *nam 56VDEVIpchras2="sref">AHppatchcci_[10nthvci_s nam 5hrefspchras2="sref">AHpatchc 56VDE 56VDEVICEmNULL="sref">AHC=numNULL_iioce01 ss{b70010/a>, 10hr74ard_ahci_(board*)(un10hr7>10o57as=");code= 67a_hos saesn&#hrNVIDIAlasshosaesn&#nam 56VDE 56VDEVICEmahr2="sref">AHCvaoar7href_[1thvci_s nam 5hrefspcl{p ev hrNVIDIAlass="p evci_s->h>311{ AHCvaoar7href s{b7009/a>, 10hr75code=board_ahci_sPBG10hr7>10o67as=");code= 67a_hos stmNsbss="_p>, 2="sref">AHCvaotmNsbss="_p>, hos stem6VDEVIp>, 2="sref">AHCvaohp>, s{b7009/a>, >10f=74ode=board_ahci_sAi_s10f=7>10o77as=");code= 67a_hos stem_iio hrNVIDIAlasshos hos stem6VDEVICE{p ev hrNVIDIAlass="p e1 s{b7009/a>, 10f=74NY_IDflags" class="s10f=7>10or796hci_sb700atativao 56VDEVICEfn_portsidiras2="sref">n_portsode1 56VDE 56VDEVICEmchras2="sref">AHiode1 56VDE 56VDEVICEmrCE{p ev hrNVIDIArcp e1 s{b7009/a>, >10"s74="L108" class="line"10"s7>10o9796hci_sb700atativao 56VDEVICEftmNsbpNsb6Eyea hrNVIDIAlatmNsbpNsb6Eytchcci_s = AHC=numaHCI_oti_BAR_STANDARDp e1 s{b7009/a>, >10s274e=mesg" class="sref"10s27>10s2738ef="+code8board_ahci_sAMDbis us107ng10boa>10hr85="+code=board_ahci_s10hr8>10sr818hci_sb700ivao 56VDEVICEfVPRINTK="sref">AHC=numVPRINTKtchd56S anstring">"ASUSTEK CONTER\nIDIAlass="de910 2ss{b70010 oard_ahci_sAMDb clas7ng10boa0/hhr85="+code=board_ahci_s/hhr8>10sr829f="+{b7009/a>, 10hr74 name="L114"> 11410s3818hci_sb700ivao 56VDEVICEfWARN_Oset 311{ AHC=numaHCI_MAX_CMDSasdv10 2ss{b70010 oard_ahci_sAMDb clas7ng10boa>10od74 name="L114"> 11410sr738ef="+code8board_ahci_sAMDbis us107ng10boa>10hr74ef="+code=board_ahci10hr7>10s5818hci_sb700ivao 56VDEVICEftem_psb70_d_ahionsab&#hrNVIDIAlasshos psb70_d_ahionsab&#tchd5thvci_s nam 5hrefspcl{p ev hrNVIDIAlass="p evci_s->h>311{ AHCvaoar7href 56VDE 56VDEVICEmDRV_VERSIOset 10hr74=board_ahci_sAMDbHud10hr7>10sode10 7ss{b70010 a>, >10f=74_ahci_sLynx Point-LP10f=7>10sr754hci_>statia mcpo7 10s=210/a>>10"s74="L108" class="line"10"s7>10s1786ver_=> rejected bythe47*naice. aHCIsgtfys8/a> rec10hr796hci_sb700am _s nam 5hrefspcl{p ev hrNVIDIAlass="p evci_s->h>311{ AHC=num class=ida_ID_MARVELLode1 "cci_s!==0s56VDE 56V6VDEVICmarvell_Ae <="sref">AHC=nummarvell_Ae 10hr74board_ahci_sAT"bSSSS10hr7>10hr7508ci_sb700, , /hhr7>10hr829f="+{b7009/a>, 10hr75code=board_ahci_sPCH10hr7>10h3754hci_>statia10h 77ahci_s, to excess 10hr78ahci_s, forttheAsus M3A sup po* pan ,eVie generldlststead, 10co74="+code=board_ahci_s10co7>10hr78ahci_s, Asne tse firmwares resddd**rhrf="+{b7008/a>, >10f=7E{p ev hrNVIDIAlass="10f=7>10h7796hci_sb700am _s nam 5hrefspcl{p ev hrNVIDIAlass="p evci_s->h>311{ AHC=num class=ida_ID_NVIDIAode1 "cci_s!==0="+{b7008/a>, 10f=74ard_ahci_sLynx Poi_s10f=7>10hr796hci_sb700_s nam 5hrefspcl{p ev hrNVIDIAlass="p evci_s->h>311{ AHC=num claDEVICE_ID_NVIDIA_NFORCE_MCP89_ivtiode1 "cci_s!==0="+{b7008/a>, >10"s74="+code=board_ahcatc10"s7>10h//f74boar7803ci_s_s nam 5hrefspcl{p ev hrNVIDIAlass="p evci_s->h>311{ , >10hr85="+code=board_ahci_s10hr8>10hr/f74boar7803ci_s_s nam 5hrefspcl{p ev hrNVIDIAlass="p evci_s->h>311{ , , /hhr7>10hr829f="+{b7009/a>, 10hr75code=board_ahci_sPCH10hr7>10h3754hci_>statia10od74" class="sref">ah 10od7>10h 77ahci_s, to excess 10hr74"+code=board_ahci_sN10hr7>10hr78ahci_s, forttheAsus M3A sup po* eo t for ivSdn'hsecoyr us/a> recluck, 10co74="+code=board_ahci_s10co7>10hr78ahci_s, Asne tse firmwares resddd**rhrf="+{b7008/a>, >10f=74="+code=board_ahci_s10f=7>10h7796hci_sb700am _s nam 5hrefspcl{p ev hrNVIDIAlass="p evci_s->h>311{ 10f=74="+code=board_ahca }10f=7>10hr796hci_sb700700<>h>311{ AHCvaoar7_infotchd5thvci_s nam 5hrefspcl{p ev hrNVIDIAlass="p evci_s->h>311{ AHCvaoar7href f="+code8board_ahci_sAMDbis us109=210/a>>10"s74="+code=bsDEVICEfals10"s7>10h//f74boar7803ci_sb700 uxe on-bohar1{ 11 hr74_ahci_sPadard_ahci_s1CP85b1ar8104ci_sb700ia311{ >11 3r74_);code=b6 =span cl61as=")10444447444444444cclidaivao 56VDEVICEftmNsbpNsb6Eyea hrNVIDIAlatmNsbpNsb6Eytchcci_s = , >11 od74" class="oard_ahci_s1CH85b10r738ef="+code8board_ahci_sAMDbis us11s=210 a>>11 hr75code=board_ahci_ssTo1ap85b1ar828hci_sb700ia700<_s!==0s||= , >11 hr74ard_ahci_sTolap85boa1828hc109738ef="+code8board_ahci_sAMDbis us11s=210/a>>11/aa74_o);code=b6 =span cl17as="110828hci_sb700ia>11/hr74_);code=b6 =span cl61as=")11r807hci_s, oary oathe47*oon, Gide* Grab all oti BARs justvin clsE, 11/hr74h#ifdefdvpmNV ev hrN1IDCON11r80ahci_s, ail u63ci_sb700 ddd**rhrf="+{b7008/a>, 11/hr75="+code=board_request_allhrNVIDIAlasshospNsm_iomap_reg31a>_request_alltchd56s nam 5hrefspcl{p ev hrNVIDIAlass="p ev, 1lass="defnivao 56VDEVICEftmNsbpNsb6Eyea hrNVIDIAlatmNsbpNsb6Eytchc 56VDE 56VDEVICEmDRV_CT_NAMEcspanstring">RV_CT_Np ev10 2ss{b70010 oard_ahci_sAMDb cla1ing10boa>11/hr75="+code=board_ahci_s1CP75b11rVDE/struct nam ivao 56VDEVICEfrCE{p ev hrNVIDIArcp e1ci=s-6VDE 56VDEVICEmEBUSYAMEcspanstring"EBUSYp e11f="+code8board_ahci_sAMDbis us11ing10boa>11/hr75="+code=board_ahsPBG1RA75b11r776hci_sb700700AHC=num class=ida_ID_INTELode1 "cci_s!==0="+{b7008/a>, >11/as74="L108" class="line"1na74=12r/f74boar7803ci_s _s nam 5hrefspcl{p ev hrNVIDIAlass="p evci_s->h>311{ mcpo7 11ing10boa>11/hr85="+code=board_ahci_s1CP85b12r7508ci_sb700311{ , 11hr74de=board_ahci_sVIAbV11hr75b12444447444444444cclidaia h usvtidssVI oti ID for bothdpiixidsoopan d**rhrf="+{b7008/a>, 11hr85="+code=board_ahcccc11hr85b12 77ahci_s, to excess , 11hr74"+code=board_ahci_sN11hr75b12r78ahci_s, forttheAsus M3A sup port64bit DTAe bici_>mICEv , sbad10bea /sYieleAsus piix, 11co74="+code=board_ahci_s11co75b12r78ahci_s, Asne tse firmwares respond henedd**rhrf="+{b7008/a>, >11f=7E{p ev hrNVIDIAlass="11f=75b1ar796hci_sb700700&qhrNVIDIAlasshospNs_read_rtaids_">&qtchd56s nam 5hrefspcl{p ev hrNVIDIAlass="p ev, 6s nam 5hrefsICH_MAPp ev hrNVIDIAlaICH_MAPp ev, 2="sref">AHCscc_icci_ahrNVIDIAla8106cimaptchc10 2ss{b70010 oard_ahci_sAMDb cla1ang10boa>11f=74ard_ahci_sLynx Point11f=75b1ar796hci_sb700700AHCsysid3i8class=ne"8name="L73"> mcpo7 11i=210/a>>11"s74="+code=board_ahci_s11"s75b1a//f74boar7803ci_sb700 >h>311{ AHCvaoar7_infotchd5thvci_s nam 5hrefspcl{p ev hrNVIDIAlass="p evci_s->h>311{ AHCvaoar7href f="+code8board_ahci_sAMDbis us113=210/a>>11f=75code=board_ahci_si_s11f=7>11f=7708ci_sb700 444cclidaiamICE, clir ,11fr818hci_sb700 _s!==0s-6VDE 56VDEVICEmENODEVAMEcspanstring"ENODEVp e1 s{b7009/a>, 11hr74 name="L114"> 11411367as=");code=elass=ne"8board_ahci_sAMDbis us113ng10boa>11od74 name="L114"> 114113r738ef="+code8board_ahci_sAMDbis us113ng10boa>11hr74ef="+code=board_ahci11hr7>1135818hci_sb700ivao 56VDEVICEfIp>, 2="sref">AHCvaohp>, ci_s = AHCvaoar7href 500, 2="sref">AHCvaohp>, ), 6s nam 5hrefsGFP_KERNEL="sref">AHC=numGFP_KERNELtchc10 2ss{b70010 oard_ahci_sAMDb cla13ng10boa>11hr74=board_ahci_sAMDbHud11hr7>113r8060ci_sb700am 56VDE 56V6VDEVICIp>, 2="sref">AHCvaohp>, ) 2ss{b70010 oard_ahci_sAMDb cla13=210/a>>11f=74_ahci_sLynx Point-LP11f=7>113r796hci_sb700700<_s!==0s-6VDE 56VDEVICEmENOMEMAMEcspanstring"ENOMEMp e1 s{b7009/a>, 11f=74NY_IDflags" class="s11f=7>11fr796hci_sb7006VDE 56V6VDEVICIp>, 2="sref">AHCvaohp>, ci_s->h>311{ flags796hc|VDE/struct nam 56VDE 56VDEVICEmpchras2="sref">AHpatchc . , at< ");code=b6 =span p>, at< ")p e1 s{b7009/a>, >11"s74="+code=board_ahcatc11"s7>1139738ef="+code8board_ahci_sAMDbis us114=210/a>>11hr85="+code=board_ahci_s11hr8>1140828hci_sb700ia31a A1idsooA2 clir ,, , /1hr7>114818hci_sb700 _s nam 5hrefspcl{p ev hrNVIDIAlass="p evci_s->h>311{ 31aE{p ev hrNVIDIArlih>31anam i_s0xa1==0s||= mcpo7 114t."9ela>11hr75code=board_ahci_sPCH11hr7>11h444447444444444cclida6VDE 56V6VDEVICIp>, 2="sref">AHCvaohp>, ci_s->h>311{ flags796hc|VDs = , 11hr85="+code=board_ahcccc11hr8>11hr738ef="+code8board_ahci_sAMDbis us11hng10boa>11hr85"+code=board_ahci_sN11hr8>114r828hci_sb700ia114r8060ci_sb700am _s nam 5hrefsstiottem_iio hrNVIDIAlastiottemtchccii_s = mcpo7 114=210/a>>11f=74ode=board_ahci_sAa }11f=7>11hr796hci_sb700700<6VDE 56V6VDEVICIp>, 2="sref">AHCvaohp>, ci_s->h>311{ flags796hcs!==0= ~s = , 11f=74board_ahcsDEVICEfals11f=7>114r6410 9ss{b70010 a>, >11hr75 1149828hci_sb700ia mcpo7 115ng10boa>11hr74_ahci_sPad_ahci_sL_i11hr7>11or7508ci_sb700, 2="sref">AHCvaohp>, ci_s->h>311{ flags796hcs!==0= ~s = , 115r829f="+{b7009/a>, 11hr85="+code=board_ahci_s11hr8>11o67as=");code=am 56V311{ , 2="sref">AHCvaohp>, ci_s->h>311{ flags796hcs!==0Ds = AHpNsbAe mcpo7 115ng10boa>11od74ard_ahci_sLynx PosTo11od7>115sref">AHCsysidioci_[8||= AHpNsbintxtchd56s nam 5hrefspcl{p ev hrNVIDIAlass="p ev, 110 2ss{b70010 oard_ahci_sAMDb cla15ng10boa>11hr85="+code=board_ahci_s11hr8>11or776h 2ss{b70010 oard_ahci_sAMDb cla15ng10boa>11hr85code=board_ahci_sPCH11hr8>115r8206ci_sb700, 2="sref">AHCvaohp>, ci_s->h>311{ AHCvaommiop e1ci_s = AHC=numpNsm_iomap_t , 11f=65_ahci_sPanther Point11f=6>1158828hci_sb700ia, 2="sref">AHCvaohp>, ) s{b7009/a>, >11oa74_o);code=b6 =span cl11oa7>1162738ef="+code8board_ahci_sAMDbis us116ng10boa>11hr74_);code=b6 =span cl611hr7>116r8104ci_sb700ia, 116sMCP85boavaoaam _s nam 5hrefsIp>, 2="sref">AHCvaohp>, ci_s->h>311{ AHCsys>h>311{ mcpo7 116t."9ela>11hr74batchtiras2="sref">A11hr7>116444447444444444cclida6VDE 56V6VDEVICpchras2="sref">AHpatchc . flags796hc|VDs = , 11hr75c#defspab{pmNV ev hr11hr7>116sref">AHCsysidioci_[8|a mcpo7 116ng10boa>11hr75code=board_ahci_sPBG11hr7>116r78ahci_s, Asne tse firmwares respond hene supporcces1a all aHCIscontroll oemindicat iesNCQp hrh9class=ne"9name="L73"> mcpo7 116=210/a>>11f=74ode=board_ahci_sAi_s11f=7>116r76ahci_sn Aspiref3810T issues a bunchaofsScapability, but6de8seemsAsusbe brokeiGNCosom p hrh9class=ne"9name="L73"> mcpo7 116ng10boa>11f=74NY_IDflags" class="s11f=7>116I78+code=> via _GTF oacludsEn Dflinvalardopchipsetsabwhich iesNVIDIAs, >11"s74="L108" class="line"11"s7>1161786ver_=> rejected bythe47*naice. Amongrdd**rhrf="+{b7008/a>, >11s274e=mesg" class="sref"11s27>117=7708ci_sb700 am 556V311{ , 2="sref">AHCvaohp>, ci_s->h>311{ flags796hcs!==0Ds = AHC=numAHCI_HFLAG_NO_ch wh_Aip ev1e"+s{b7009name="L73"> mcpo7 117ng10boa>11hr85="+code=board_ahci_s11hr8>117r7508ci_sb700 67a_hos spchras2="sref">AHpatchc . flags796hc|VDs = AHC=numATA_FLAG_ch wh_Aip e1 s{b7009/a>, 11hr74 name="L114"> 114117ode10 4ss{b70010 a>, 11od74 name="L114"> 114117rVDE/struct nam ivao 56VDEVICEfIp>, 2="sref">AHCvaohp>, ci_s->h>311{ AHCsys>h>311{ 11hr74ef="+code=board_ahci11hr7>117r776hci_sb700700AHpatchc . flags796hc|VDs = , 11hr74=board_ahci_sAMDbHud11hr7>11sode10 7ss{b70010 a>, >11f=74_ahci_sLynx Point-LP11f=7>117r754hci_>stativao 56Ve_d(un tmNsbset_em_messagtchtiras2="sref">tmNsbset_em_messagtctchd56s nam 5hrefsIp>, 2="sref">AHCvaohp>, , 2="sref">AHCscc_iccipchras2="sref">AHpatchc) s{b7009/a>, 11f=74NY_IDflags" class="s11f=7>117r6410 9ss{b70010 a>, >11"s74="L108" class="line"11"s7>11798060ci_sb700am _s nam 5hrefstmNsbbrokeiDE/strucpoweroffhtiras2="sref">tmNsbbrokeiDE/strucpowerofftchd56s nam 5hrefspcl{p ev hrNVIDIAlass="p ev1e=class=ne"8name="L73"> mcpo7 118=210/a>>11hr85="+code=board_ahcysi11hr8>118d8060ci_sb700 67a_hos spchras2="sref">AHpatchc . flags796hc|VDs = , 11hr74board_ahci_sAT"bSSSS11hr7>11hr7508ci_sb700AHCvaoar7_infotchd5thvci_s nam 5hrefspcl{p ev hrNVIDIAlass="p evci_s->h>311{ AHCvaoar7href f="+code8board_ahci_sAMDbis us118ng10boa0/1hr74hci_sb700, /1hr7>11844444ci_sb700 ia11hr75code=board_ahci_sPCH11hr7>11867as=");code=elass=ne"8board_ahci_sAMDbis us118ng10boa>11hr85="+code=board_ahcccc11hr8>118r738ef="+code8board_ahci_sAMDbis us118ng10boa>11hr74"+code=board_ahci_sN11hr7>11858060ci_sb700am _s nam 5hrefstmNsbbrokeiDEuspe_ mcpo7 118ng10boa>11co74="+code=board_ahci_s11co7>118r8060ci_sb700 VDE 56V6VDEVICIp>, 2="sref">AHCvaohp>, ci_s->h>311{ flags796hc|VDs = AHC=numaHCI_HFLAG_NO_SUSPENDp e1 s{b7009/a>, >11f=7E{p ev hrNVIDIAlass="11f=7>118r796hci_sb700700<6VDE 56V6VDEVICar7_waraE{p ev hrNVIDIAar7_waratchd5thvci_s nam 5hrefspcl{p ev hrNVIDIAlass="p evci_s->h>311{ AHCvaoar7href f="+code8board_ahci_sAMDbis us118ng10boa>11f=74ard_ahci_sLynx Poi_s11f=7>11hr796hci_sb7000 ia11h//f74boar7803elass=ne"8board_ahci_sAMDbis us119=210/a>>11hr85="+code=board_ahci_s11hr8>1192738ef="+code8board_ahci_sAMDbis us119ng10boa>11hr74_ahci_sPanther Poooo11hr7>119r818hci_sb700am _s nam 5hrefsAlassbrokeiDooarspagset=IAlass=anAlassbrokeiDooarsptchd56s nam 5hrefspcl{p ev hrNVIDIAlass="p ev1e=class=ne"8name="L73"> mcpo7 119ng10boa0/1hr74hci_sb700, /1hr7>11944444ci_sb700, 2="sref">AHCvaohp>, ci_s->h>311{ flags796hc|VDs = , 11hr75code=board_ahci_sPCH11hr7>119444447444444444cclida6VDE 56V6VDEVICEhr_info2="sref">AHCvaoar7_infotchd5thvci_s nam 5hrefspcl{p ev hrNVIDIAlass="p evci_s->h>311{ AHCvaoar7href f="+code8board_ahci_sAMDbis us119ng10boa>11od74" class="sref">ah 11od7>119sref">AHCsysidioci_[80 ia1195/f74boar7803elass=ne"8board_ahci_sAMDbis us119ng10boa>11co74="+code=board_ahci_s11co7>119ode10 7ss{b70010 a>, >11f=74="+code=board_ahci_s11f=7>119r754hci_>statia119I78+code=> via _GTF oacludsEn Dfl*dport, pt o1191786ver_=> rejected bythe47*naice* determin ies12 hr74_ahci_sPadard_ahci_s2CP85b20r807hci_s, oary oathe47*oon, Gide*dd**rhrf="+{b7008/a>, 12 hr74hci_sb700un ed oa2d_ahc202818hci_sb700ivao 56VDEVICEfn_portsidiras2="sref">n_portsode1ci_s = AHCvaomaxtchd56s nam 5hrefsAlassnr_portsidiras2="sref">Alassnr_portstchd56s nam 5hrefsIp>, 2="sref">AHCvaohp>, ci_s->h>311{ flstchd56s nam 5hrefsIp>, 2="sref">AHCvaohp>, ci_s->h>311{ >12 3r74_);code=b6 =span cl62as=")20ode10 4ss{b70010 a>, >12 od74" class="oard_ahci_s2CH85b204818hci_sb700ivao 56VDEVICEfICE{p ev hrNVIDIAlass="p e1ci_s = AHCvaotem_ _alloC_pinfotchd5thvci_s nam 5hrefspcl{p ev hrNVIDIAlass="p evci_s->h>311{ AHCvaoar7href 67a_hos sppchras2="sref">AHppatchc 67a_hos sn_portsidiras2="sref">n_portsode1e0 2ss{b70010 oard_ahci_sAMDb cla2s5210 a>>12 r74"+code=board_ahci_sN12ap85b2058060ci_sb700am 56VDE 56V6VDEVICICE{p ev hrNVIDIAlass="p e1014ss{b70010board_ahci_sAMDbis u2i6210 a>>12 o74="+code=board_ahci_s12as=")20r8060ci_sb700 _s!==0s-6VDE 56VDEVICEmENOMEMAMEcspanstring"ENOMEMp e1 s{b7009/a>, >12 =74="+code=board_ahci_s12re8va20r754hci_>stativao 56Ve_d(un ICE{p ev hrNVIDIAlass="p e1ci_s->h>311{ , at< ");code=b6 =span p>, at< ")p e1ci_s = , 2="sref">AHCvaohp>, s{b7009/a>, >12 =74="+code=board_ahca }12RA65b20r6410 9ss{b70010 a>, >12 hr74ard_ahci_sTolap85boa2828hc2098060ci_sb700am 556V311{ , 2="sref">AHCvaohp>, ci_s->h>311{ AHCsys>h>311{ AHC=numHOST_CAP_SSSp e1)==0s||= Alassrucore_sssp e1014ss{b70010board_ahci_sAMDbis u2s=210/a>>12/aa74_o);code=b6 =span cl27as="21d8060ci_sb700 67a_hos sICE{p ev hrNVIDIAlass="p e1ci_s->h>311{ flags796hc|VDs = , >12/hr74_);code=b6 =span cl62as=")21r818hci_sb700else/1ss{b70010/a>, 12/hr74h#ifdefdvpmNV ev hrN2IDCON2144444ci_sb700, 12/hr75="+code=board_ahci_s2CP75b21rVDE/struct nam ivao 56VDEVICEfpchras2="sref">AHpatchc . flags796hcs!==0Ds = >12/hr75="+code=board_ahsPBG2RA75b21r776hci_sb700700Alassreset_emtchd56s nam 5hrefsICE{p ev hrNVIDIAlass="p e100 2ss{b70010 oard_ahci_sAMDb cla2i6210 a>>12/co74="+code=board_ahci_s2CP85b21ode10 7ss{b70010 a>, >12/f=74_ahci_sLynx Point-LP2RA74b21r796hci_sb700for 56s nam 5hrefschras2="sref">AHiode1 = 00s||= AHiode1 "defnivao 56VDEVICEfICE{p ev hrNVIDIAlass="p e1ci_s->h>311{ n_portsode10s||= AHiode1++e=class=ne"8name="L73"> mcpo7 12ing10boa>12/f=74NY_IDflags" class="s2 574N21r796hci_sb700700< 67a_hos stem_port2="sref">AHCvaotem_port796hc hos stem6VDEVahrNVIDIAla8106ciaptchcci_s = portsode1[||= AHiode19 s{b7009/a>, >12/"s74="L108" class="line"2na74=219738ef="+code8board_ahci_sAMDbis us12s=210/a>>12/as74="L108" class="line"2na74=22r/f74boar7803ci_s700311{ 12rhr85="+code=board_ahci_s2CP85b2244444ci_sb700 0x100 +56VDE 56VDEVICEmthrNVIDIAla8106ciaptchcci_s->h>311{ AHCvaoport_no796hc 0x80,cxe on-bohar1{ AHCsysidioci_[8|a700311{ flags796hcs!==0Ds = 12co74="+code=board_ahci_s12co75b22r8060ci_sb700 311{ 311{ , 2="sref">AHCvaohp>, ci_s->h>311{ , >12f=7E{p ev hrNVIDIAlass="12f=75b22r811f="+{b7008/a>, 12f=74ard_ahci_sLynx Point12f=75b22r6410 9ss{b70010 a>, >12"s74="+code=board_ahci_s12"s75b2a//f74boar7803ci_sb700|aAHCvaohp>, ci_s->h>311{ AHiode1)1e"+s{b7009name="L73"> mcpo7 12fng10boa>12hr85="+code=board_ahci_s12hr8>12fr818hci_sb700 >h>311{ 311{ opsp e1ci_thvci_s nam 5hrefsAem_dummy_port_opsidiras2="sref">Aem_dummy_port_ops s{b7009/a>, 12hr74 name="L114"> 114123ode10 4ss{b70010 a>, 12od74 name="L114"> 1141234818hci_sb700ia1235818hci_sb700ivao 56VDEVICEftmNsbp5wdh__ensa67a_hea hrNVIDIAlatmNsbp5wdh__ensa67a_htchd56s nam 5hrefsICE{p ev hrNVIDIAlass="p e100 2ss{b70010 oard_ahci_sAMDb cla23ng10boa>12hr74=board_ahci_sAMDbHud12hr7>123ode10 7ss{b70010 a>, >12f=74_ahci_sLynx Point-LP12f=7>123r754hci_>statia>12"s74="+code=board_ahcatc12"s7>1239738ef="+code8board_ahci_sAMDbis us124=210/a>>12hr85="+code=board_ahci_s12hr8>1240828hci_sb700iaAlassrtaidsore_dma_maskstchd56s nam 5hrefspcl{p ev hrNVIDIAlass="p ev, 6s nam 5hrefsIp>, 2="sref">AHCvaohp>, ci_s->h>311{ AHCsys>h>311{ , /2hr7>124sMCP85boavaoaam _s nam 5hrefsrCE{p ev hrNVIDIArcp e11f="+code8board_ahci_sAMDbis us124t."9ela>12hr75code=board_ahci_sPCH12hr7>12h444447444444444cclida_s!==0s||= , 12hr85="+code=board_ahcccc12hr8>12hr738ef="+code8board_ahci_sAMDbis us12hng10boa>12hr85"+code=board_ahci_sN12hr8>1245818hci_sb700ivao 56VDEVICEfrCE{p ev hrNVIDIArcp e1ci_s = 124r8060ci_sb700am _s nam 5hrefsrCE{p ev hrNVIDIArcp e11f="+code8board_ahci_sAMDbis us124=210/a>>12f=74ode=board_ahci_sAa }12f=7>12hr796hci_sb700700<_s!==0s||= , 12f=74board_ahcsDEVICEfals12f=7>124r6410 9ss{b70010 a>, >12hr75 12498206ci_sb700AHCvaotmNsbpNsbpsb70_infotchd56s nam 5hrefsICE{p ev hrNVIDIAlass="p e100 2ss{b70010 oard_ahci_sAMDb cla25ng10boa>12hr74_ahci_sPad_ahci_sL_i12hr7>12or7508 2ss{b70010 oard_ahci_sAMDb cla25ng10boa0/2hr85+code=board_ahci_sTo/2hr8>1252818hci_sb700ivao 56VDEVICEfpNsbset_mast oea hrNVIDIAlapNsbset_mast otchd56s nam 5hrefspcl{p ev hrNVIDIAlass="p ev00 2ss{b70010 oard_ahci_sAMDb cla25t."9ela>12hr85="+code=board_ahci_s12hr8>12o67as=");code=_s!==0s||= AHCvaotem_ _act, at311{ AHirqtchc 56VDE 56VDEVICEmtmNsbinterruptea hrNVIDIAlatmNsbinterrupttchc 56VDE 56VDEVICEmIRQF_SHARED="sref">AHC=numIRQF_SHAREDtchc, 2ss{b70010 oard_ahci_sAMDb cla25ng10boa>12od74ard_ahci_sLynx PosTo12od7>125sref">AHCsysidioci_[888888888888888888thvci_s nam 5hrefsAmNsbshtea hrNVIDIAlatmNsbsh"p e100 2ss{b70010 oard_ahci_sAMDb cla25ng10boa>12hr85="+code=board_ahci_s12hr8>12or776helass=ne"8board_ahci_sAMDbis us125ng10boa>12hr85code=board_ahci_sPCH12hr8>125ode10 7ss{b70010 a>, >12nr85code=board_ahci_sPCH12nr8>125r811f_s nam 5hrefsmodulebpNsb0 a>, ea hrNVIDIAlamodulebpNsb0 a>, tchd56s nam 5hrefsAmNsbpNsb0 a>, ea hrNVIDIAlaAmNsbpNsb0 a>, p e100 2ss{b70010 oard_ahci_sAMDb cla25ng10boa>12f=65_ahci_sPanther Point12f=6>125r6410 9ss{b70010 a>, >12hr74ard_ahci_sTolap85boa12hr7>125982066s nam 5hrefsMODULE_AUTHORea hrNVIDIAlaMODULE_AUTHORtchd56e on-bohar1{ 12hr74_);code=b6 =span cl612hr7>126r81046s nam 5hrefsMODULE_LICENSNAMEcspanstring"MODULE_LICENSNtchd56e on-bohar1{ 126sMCP86s nam 5hrefsMODULE_DEVICE_TABLNAMEcspanstring"MODULE_DEVICE_TABLNtchd56s nam 5hrefspcchras2="sref">AHpNstchc 56VDE 56VDEVICEmtmNsbpNsbtblhrNVIDIAlasshostmNsbpNsbtblp e100 2ss{b70010 oard_ahci_sAMDb cla26t."9ela>12hr74batchtiras2="sref">A12hr7>126444446s nam 5hrefsMODULE_VERSIOset RV_VERSIOset RV_VERSIOsp e100 2ss{b70010 oard_ahci_sAMDb cla26ng10boa>12hr75c#defspab{pmNV ev hr12hr7>126sref"
The original LXR softwh usbysLXR lxo@ab{ux.notchc
lxo.ab{ux.no kindlysss="ed bys2ss{b7001http://www.redpill-ab{pro.no">Redpill Lb{pro AStchc 5provider recLb{uxsconsult iesdsoooperat31as serrn&#sssince 1995.