mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
ide_pci_generic: add quirk for Netcell ATA RAID
We need to explicitly mark words 85-87 as valid ones since firmware doesn't do it. This should fix support for LBA48 and FLUSH CACHE [EXT] command which stopped working after we applied more strict checking of identify words in: commit942dcd85bf
("ide: idedisk_supports_lba48() -> ata_id_lba48_enabled()") and commit4b58f17d7c
("ide: ide_id_has_flush_cache() -> ata_id_flush_enabled()") Reported-and-tested-by: "Trevor Hemsley" <trevor.hemsley@ntlworld.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
5993856e53
commit
c339dfdd65
1 changed files with 11 additions and 0 deletions
|
@ -33,6 +33,16 @@ static int ide_generic_all; /* Set to claim all devices */
|
||||||
module_param_named(all_generic_ide, ide_generic_all, bool, 0444);
|
module_param_named(all_generic_ide, ide_generic_all, bool, 0444);
|
||||||
MODULE_PARM_DESC(all_generic_ide, "IDE generic will claim all unknown PCI IDE storage controllers.");
|
MODULE_PARM_DESC(all_generic_ide, "IDE generic will claim all unknown PCI IDE storage controllers.");
|
||||||
|
|
||||||
|
static void netcell_quirkproc(ide_drive_t *drive)
|
||||||
|
{
|
||||||
|
/* mark words 85-87 as valid */
|
||||||
|
drive->id[ATA_ID_CSF_DEFAULT] |= 0x4000;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const struct ide_port_ops netcell_port_ops = {
|
||||||
|
.quirkproc = netcell_quirkproc,
|
||||||
|
};
|
||||||
|
|
||||||
#define DECLARE_GENERIC_PCI_DEV(extra_flags) \
|
#define DECLARE_GENERIC_PCI_DEV(extra_flags) \
|
||||||
{ \
|
{ \
|
||||||
.name = DRV_NAME, \
|
.name = DRV_NAME, \
|
||||||
|
@ -74,6 +84,7 @@ static const struct ide_port_info generic_chipsets[] __devinitdata = {
|
||||||
|
|
||||||
{ /* 6: Revolution */
|
{ /* 6: Revolution */
|
||||||
.name = DRV_NAME,
|
.name = DRV_NAME,
|
||||||
|
.port_ops = &netcell_port_ops,
|
||||||
.host_flags = IDE_HFLAG_CLEAR_SIMPLEX |
|
.host_flags = IDE_HFLAG_CLEAR_SIMPLEX |
|
||||||
IDE_HFLAG_TRUST_BIOS_FOR_DMA |
|
IDE_HFLAG_TRUST_BIOS_FOR_DMA |
|
||||||
IDE_HFLAG_OFF_BOARD,
|
IDE_HFLAG_OFF_BOARD,
|
||||||
|
|
Loading…
Reference in a new issue