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

Commit 5c3c4d9b authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (71 commits)
  ide: Remove ide_spin_wait_hwgroup() and use special requests instead
  ide: move IDE{FLOPPY,TAPE}_WAIT_CMD defines to <linux/ide.h>
  ide: add ide_do_test_unit_ready() helper
  ide: add ide_do_start_stop() helper
  ide: add ide_set_media_lock() helper
  ide-floppy: move floppy ioctls handling to ide-floppy_ioctl.c
  ide-floppy: ->{srfp,wp} -> IDE_AFLAG_{SRFP,WP}
  ide: add ide_queue_pc_tail() helper
  ide: add ide_queue_pc_head() helper
  ide: add ide_init_pc() helper
  ide-tape: add ide_tape_set_media_lock() helper
  ide-floppy: add ide_floppy_set_media_lock() helper
  ide: add ide_io_buffers() helper
  ide-scsi: cleanup ide_scsi_io_buffers()
  ide-floppy: remove MODE_SENSE_* defines
  ide-{floppy,tape}: remove packet command stack
  ide-{floppy,tape}: remove request stack
  ide-generic: handle probing of legacy io-ports v5
  ide-floppy: use scatterlists for pio transfers
  ide-tape: remove idetape_init_rq()
  ...
parents ead9d23d 92f1f8fd
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -503,7 +503,7 @@ int ata_cmd_ioctl(struct scsi_device *scsidev, void __user *arg)
	scsi_cmd[0] = ATA_16;
	scsi_cmd[0] = ATA_16;


	scsi_cmd[4] = args[2];
	scsi_cmd[4] = args[2];
	if (args[0] == WIN_SMART) { /* hack -- ide driver does this too... */
	if (args[0] == ATA_CMD_SMART) { /* hack -- ide driver does this too */
		scsi_cmd[6]  = args[3];
		scsi_cmd[6]  = args[3];
		scsi_cmd[8]  = args[1];
		scsi_cmd[8]  = args[1];
		scsi_cmd[10] = 0x4f;
		scsi_cmd[10] = 0x4f;
+5 −4
Original line number Original line Diff line number Diff line
@@ -39,6 +39,7 @@
#include <linux/ioport.h>
#include <linux/ioport.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/blkpg.h>
#include <linux/blkpg.h>
#include <linux/ata.h>
#include <linux/hdreg.h>
#include <linux/hdreg.h>


#define REALLY_SLOW_IO
#define REALLY_SLOW_IO
@@ -370,7 +371,7 @@ static void reset_hd(void)
		struct hd_i_struct *disk = &hd_info[i];
		struct hd_i_struct *disk = &hd_info[i];
		disk->special_op = disk->recalibrate = 1;
		disk->special_op = disk->recalibrate = 1;
		hd_out(disk, disk->sect, disk->sect, disk->head-1,
		hd_out(disk, disk->sect, disk->sect, disk->head-1,
			disk->cyl, WIN_SPECIFY, &reset_hd);
			disk->cyl, ATA_CMD_INIT_DEV_PARAMS, &reset_hd);
		if (reset)
		if (reset)
			goto repeat;
			goto repeat;
	} else
	} else
@@ -558,7 +559,7 @@ static int do_special_op(struct hd_i_struct *disk, struct request *req)
{
{
	if (disk->recalibrate) {
	if (disk->recalibrate) {
		disk->recalibrate = 0;
		disk->recalibrate = 0;
		hd_out(disk, disk->sect, 0, 0, 0, WIN_RESTORE, &recal_intr);
		hd_out(disk, disk->sect, 0, 0, 0, ATA_CMD_RESTORE, &recal_intr);
		return reset;
		return reset;
	}
	}
	if (disk->head > 16) {
	if (disk->head > 16) {
@@ -631,13 +632,13 @@ static void hd_request(void)
	if (blk_fs_request(req)) {
	if (blk_fs_request(req)) {
		switch (rq_data_dir(req)) {
		switch (rq_data_dir(req)) {
		case READ:
		case READ:
			hd_out(disk, nsect, sec, head, cyl, WIN_READ,
			hd_out(disk, nsect, sec, head, cyl, ATA_CMD_PIO_READ,
				&read_intr);
				&read_intr);
			if (reset)
			if (reset)
				goto repeat;
				goto repeat;
			break;
			break;
		case WRITE:
		case WRITE:
			hd_out(disk, nsect, sec, head, cyl, WIN_WRITE,
			hd_out(disk, nsect, sec, head, cyl, ATA_CMD_PIO_WRITE,
				&write_intr);
				&write_intr);
			if (reset)
			if (reset)
				goto repeat;
				goto repeat;
+0 −23
Original line number Original line Diff line number Diff line
@@ -131,29 +131,6 @@ config BLK_DEV_IDEDISK


	  If unsure, say Y.
	  If unsure, say Y.


config IDEDISK_MULTI_MODE
	bool "Use multiple sector mode for Programmed Input/Output by default"
	help
	  This setting is irrelevant for most IDE disks, with direct memory
	  access, to which multiple sector mode does not apply. Multiple sector
	  mode is a feature of most modern IDE hard drives, permitting the
	  transfer of multiple sectors per Programmed Input/Output interrupt,
	  rather than the usual one sector per interrupt. When this feature is
	  enabled, it can reduce operating system overhead for disk Programmed
	  Input/Output. On some systems, it also can increase the data
	  throughput of Programmed Input/Output. Some drives, however, seemed
	  to run slower with multiple sector mode enabled. Some drives claimed
	  to support multiple sector mode, but lost data at some settings.
	  Under rare circumstances, such failures could result in massive
	  filesystem corruption.

	  If you get the following error, try to say Y here:

	  hda: set_multmode: status=0x51 { DriveReady SeekComplete Error }
	  hda: set_multmode: error=0x04 { DriveStatusError }

	  If in doubt, say N.

config BLK_DEV_IDECS
config BLK_DEV_IDECS
	tristate "PCMCIA IDE support"
	tristate "PCMCIA IDE support"
	depends on PCMCIA
	depends on PCMCIA
+4 −3
Original line number Original line Diff line number Diff line
@@ -4,8 +4,8 @@


EXTRA_CFLAGS				+= -Idrivers/ide
EXTRA_CFLAGS				+= -Idrivers/ide


ide-core-y += ide.o ide-io.o ide-iops.o ide-lib.o ide-probe.o ide-taskfile.o \
ide-core-y += ide.o ide-ioctls.o ide-io.o ide-iops.o ide-lib.o ide-probe.o \
	      ide-pio-blacklist.o
	      ide-taskfile.o ide-pio-blacklist.o


# core IDE code
# core IDE code
ide-core-$(CONFIG_IDE_TIMINGS)		+= ide-timings.o
ide-core-$(CONFIG_IDE_TIMINGS)		+= ide-timings.o
@@ -37,11 +37,12 @@ obj-$(CONFIG_IDE_GENERIC) += ide-generic.o
obj-$(CONFIG_BLK_DEV_IDEPNP)		+= ide-pnp.o
obj-$(CONFIG_BLK_DEV_IDEPNP)		+= ide-pnp.o


ide-cd_mod-y += ide-cd.o ide-cd_ioctl.o ide-cd_verbose.o
ide-cd_mod-y += ide-cd.o ide-cd_ioctl.o ide-cd_verbose.o
ide-floppy_mod-y += ide-floppy.o ide-floppy_ioctl.o


obj-$(CONFIG_BLK_DEV_IDEDISK)		+= ide-disk.o
obj-$(CONFIG_BLK_DEV_IDEDISK)		+= ide-disk.o
obj-$(CONFIG_BLK_DEV_IDECD)		+= ide-cd_mod.o
obj-$(CONFIG_BLK_DEV_IDECD)		+= ide-cd_mod.o
obj-$(CONFIG_BLK_DEV_IDEFLOPPY)		+= ide-floppy_mod.o
obj-$(CONFIG_BLK_DEV_IDETAPE)		+= ide-tape.o
obj-$(CONFIG_BLK_DEV_IDETAPE)		+= ide-tape.o
obj-$(CONFIG_BLK_DEV_IDEFLOPPY)		+= ide-floppy.o


ifeq ($(CONFIG_BLK_DEV_IDECS), y)
ifeq ($(CONFIG_BLK_DEV_IDECS), y)
	ide-cs-core-y += legacy/ide-cs.o
	ide-cs-core-y += legacy/ide-cs.o
+2 −3
Original line number Original line Diff line number Diff line
@@ -10,7 +10,6 @@
#include <linux/slab.h>
#include <linux/slab.h>
#include <linux/blkdev.h>
#include <linux/blkdev.h>
#include <linux/errno.h>
#include <linux/errno.h>
#include <linux/hdreg.h>
#include <linux/ide.h>
#include <linux/ide.h>
#include <linux/dma-mapping.h>
#include <linux/dma-mapping.h>
#include <linux/device.h>
#include <linux/device.h>
@@ -265,8 +264,8 @@ static void icside_set_dma_mode(ide_drive_t *drive, const u8 xfer_mode)
	 * If we're going to be doing MW_DMA_1 or MW_DMA_2, we should
	 * If we're going to be doing MW_DMA_1 or MW_DMA_2, we should
	 * take care to note the values in the ID...
	 * take care to note the values in the ID...
	 */
	 */
	if (use_dma_info && drive->id->eide_dma_time > cycle_time)
	if (use_dma_info && drive->id[ATA_ID_EIDE_DMA_TIME] > cycle_time)
		cycle_time = drive->id->eide_dma_time;
		cycle_time = drive->id[ATA_ID_EIDE_DMA_TIME];


	drive->drive_data = cycle_time;
	drive->drive_data = cycle_time;


Loading