Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 38f061c5 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:
  ide-disk: workaround for buggy HPA support on ST340823A (take 3)
  hpt34x: fix CONFIG_HPT34X_AUTODMA=n handling
  triflex: add missing ->dma_base check
  pdc202xx_old: add missing ->dma_base check
  pdc202xx_new: add missing ->dma_base check
  cs5530: add missing ->dma_base check
  ide: ide_config_drive_speed() bugfixes
  ide: add cable detection for early UDMA66 devices (take 3)
  ide-pmac: fix drive->init_speed reporting
  ide: config_drive_for_dma() fixes
  ide-cris: fix ->set_pio_mode method to set transfer mode on the device
  ide: fix hidden dependencies on CONFIG_IDE_GENERIC
  ide: make CONFIG_IDE_GENERIC default to N
parents 09d4b9aa b0244a00
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -548,6 +548,7 @@ config ETRAX_IDE
	select BLK_DEV_IDEDISK
	select BLK_DEV_IDECD
	select BLK_DEV_IDEDMA
	select IDE_GENERIC
	help
	  Enable this to get support for ATA/IDE.
	  You can't use parallel ports or SCSI ports
+1 −0
Original line number Diff line number Diff line
@@ -592,6 +592,7 @@ config ETRAX_IDE
	select BLK_DEV_IDEDISK
	select BLK_DEV_IDECD
	select BLK_DEV_IDEDMA
	select IDE_GENERIC
	help
	  Enables the ETRAX IDE driver.

+10 −2
Original line number Diff line number Diff line
@@ -304,9 +304,9 @@ comment "IDE chipset support/bugfixes"

config IDE_GENERIC
	tristate "generic/default IDE chipset support"
	default y
	default H8300
	help
	  If unsure, say Y.
	  If unsure, say N.

config BLK_DEV_CMD640
	bool "CMD640 chipset bugfix/support"
@@ -345,6 +345,7 @@ config BLK_DEV_CMD640_ENHANCED
config BLK_DEV_IDEPNP
	bool "PNP EIDE support"
	depends on PNP
	select IDE_GENERIC
	help
	  If you have a PnP (Plug and Play) compatible EIDE card and
	  would like the kernel to automatically detect and activate
@@ -834,6 +835,7 @@ config BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ

config IDE_ARM
	def_bool ARM && (ARCH_CLPS7500 || ARCH_RPC || ARCH_SHARK)
	select IDE_GENERIC

config BLK_DEV_IDE_ICSIDE
	tristate "ICS IDE interface support"
@@ -867,6 +869,7 @@ config BLK_DEV_IDE_BAST
config BLK_DEV_GAYLE
	bool "Amiga Gayle IDE interface support"
	depends on AMIGA
	select IDE_GENERIC
	help
	  This is the IDE driver for the Amiga Gayle IDE interface. It supports
	  both the `A1200 style' and `A4000 style' of the Gayle IDE interface,
@@ -898,6 +901,7 @@ config BLK_DEV_IDEDOUBLER
config BLK_DEV_BUDDHA
	bool "Buddha/Catweasel/X-Surf IDE interface support (EXPERIMENTAL)"
	depends on ZORRO && EXPERIMENTAL
	select IDE_GENERIC
	help
	  This is the IDE driver for the IDE interfaces on the Buddha, 
	  Catweasel and X-Surf expansion boards.  It supports up to two interfaces 
@@ -910,6 +914,7 @@ config BLK_DEV_BUDDHA
config BLK_DEV_FALCON_IDE
	bool "Falcon IDE interface support"
	depends on ATARI
	select IDE_GENERIC
	help
	  This is the IDE driver for the builtin IDE interface on the Atari
	  Falcon. Say Y if you have a Falcon and want to use IDE devices (hard
@@ -919,6 +924,7 @@ config BLK_DEV_FALCON_IDE
config BLK_DEV_MAC_IDE
	bool "Macintosh Quadra/Powerbook IDE interface support"
	depends on MAC
	select IDE_GENERIC
	help
	  This is the IDE driver for the builtin IDE interface on some m68k
	  Macintosh models. It supports both the `Quadra style' (used in
@@ -932,6 +938,7 @@ config BLK_DEV_MAC_IDE
config BLK_DEV_Q40IDE
	bool "Q40/Q60 IDE interface support"
	depends on Q40
	select IDE_GENERIC
	help
	  Enable the on-board IDE controller in the Q40/Q60.  This should
	  normally be on; disable it only if you are running a custom hard
@@ -940,6 +947,7 @@ config BLK_DEV_Q40IDE
config BLK_DEV_MPC8xx_IDE
	bool "MPC8xx IDE support"
	depends on 8xx && IDE=y && BLK_DEV_IDE=y
	select IDE_GENERIC
	help
	  This option provides support for IDE on Motorola MPC8xx Systems.
	  Please see 'Type of MPC8xx IDE interface' for details.
+2 −0
Original line number Diff line number Diff line
@@ -718,6 +718,8 @@ static void tune_cris_ide(ide_drive_t *drive, u8 pio)
	}

	cris_ide_set_speed(TYPE_PIO, setup, strobe, hold);

	(void)ide_config_drive_speed(drive, XFER_PIO_0 + pio);
}

static int speed_cris_ide(ide_drive_t *drive, u8 speed)
+18 −0
Original line number Diff line number Diff line
@@ -481,6 +481,15 @@ static inline int idedisk_supports_lba48(const struct hd_driveid *id)
	       && id->lba_capacity_2;
}

/*
 * Some disks report total number of sectors instead of
 * maximum sector address.  We list them here.
 */
static const struct drive_list_entry hpa_list[] = {
	{ "ST340823A",	NULL },
	{ NULL,		NULL }
};

static void idedisk_check_hpa(ide_drive_t *drive)
{
	unsigned long long capacity, set_max;
@@ -492,6 +501,15 @@ static void idedisk_check_hpa(ide_drive_t *drive)
	else
		set_max = idedisk_read_native_max_address(drive);

	if (ide_in_drive_list(drive->id, hpa_list)) {
		/*
		 * Since we are inclusive wrt to firmware revisions do this
		 * extra check and apply the workaround only when needed.
		 */
		if (set_max == capacity + 1)
			set_max--;
	}

	if (set_max <= capacity)
		return;

Loading