Skip to content
  • Lv Zheng's avatar
    ACPI/libata: Restore libata.noacpi support · 19ccee76
    Lv Zheng authored
    This patch restores libata.noacpi support to libata-acpi.c.
    There are broken optional control methods for ATA controller devices in the
    real world.  The libata.noacpi has been used for a long time as a
    workaround to deal with issues caused by the broken ASL codes.
    1. The "noacpi" option is introduced by the following commit:
       commit 11ef697b
       Date: Thu, 28 Sep 2006 11:29:01 -0700
       Subject: libata: ACPI and _GTF support
    2. The "noacpi" option is renamed to "libata_noacpi" by the following
       commit:
       commit d7d0dad6
       Date: Wed, 28 Mar 2007 01:57:37 -0400
       Subject: [libata] Disable ACPI by default; fix namespace problems
    3. Some of its logics are changed over time - becomes relying on the
       "acpi_handle" bound to the ATA devices since this commit:
       commit fafbae87
       Date: Tue, 15 May 2007 03:28:16 +0900
       Subject: libata-acpi: implement ata_acpi_associate()
    4. The option is deleted by the following commit:
       commit 30dcf76a
    
    
       Date: Mon, 25 Jun 2012 16:13:04 +0800
       Subject: libata: migrate ACPI code over to new bindings
    But the libata.noacpi setup is still left in the kernel without codes to
    implement it.  So the deletion introduces a regression to the Linux.
    This patch disables ATA_ACPI support at runtime by stopping acpi binding
    on the ATA devices to fix this regression.
    This patch is tested by booting a SATA x86-64 kernel or a PATA x86 kernel
    with or without "libata.noacpi=1" kernel command line argument.
    
    Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
    Signed-off-by: default avatarAaron Lu <aaron.lu@intel.com>
    Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
    19ccee76