aboutsummaryrefslogtreecommitdiff
path: root/include/linux/ide.h
AgeCommit message (Collapse)AuthorFilesLines
2009-03-31ide-cd: use scatterlists for PIO transfers (fs requests)Bartlomiej Zolnierkiewicz1-0/+4
* Export ide_pio_bytes(). * Add ->last_xfer_len field to struct ide_cmd. * Add ide_cd_error_cmd() helper to ide-cd. * Convert ide-cd to use scatterlists also for PIO transfers (fs requests only for now) and get rid of partial completions (except when the error happens -- which is still subject to change later because looking at ATAPI spec it seems that the device is free to error the whole transfer with setting the Error bit only on the last transfer chunk). * Update ide_cd_{prepare_rw,restore_request,do_request}() accordingly. * Inline ide_cd_restore_request() into cdrom_start_rw(). Cc: Borislav Petkov <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: keep track of number of bytes instead of sectors in struct ide_cmdBartlomiej Zolnierkiewicz1-2/+2
* Pass number of bytes instead of sectors to ide_init_sg_cmd(). * Pass number of bytes to process to ide_pio_sector() and rename it to ide_pio_bytes(). * Rename ->nsect field to ->nbytes in struct ide_cmd and use ->nbytes, ->nleft and ->cursg_ofs to keep track of number of bytes instead of sectors. There should be no functional changes caused by this patch. Acked-by: Borislav Petkov <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: remove ide_execute_pkt_cmd() (v2)Bartlomiej Zolnierkiewicz1-3/+2
* Pass command structure to ide_execute_command() and skip __ide_set_handler() for ATAPI protocols on non-DRQ devices. * Convert ide_issue_pc() to always use ide_execute_command() and remove no longer needed ide_execute_pkt_cmd(). v2: * Fix for non-DRQ devices (based on report from Borislav). There should be no functional changes caused by this patch. Acked-by: Borislav Petkov <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: add ->dma_timer_expiry method and remove ->dma_exec_cmd one (v2)Bartlomiej Zolnierkiewicz1-4/+4
* Rename dma_timer_expiry() to ide_dma_sff_timer_expiry() and export it. * Add ->dma_timer_expiry method and use it to set hwif->expiry for ATA_PROT_DMA protocol in do_rw_taskfile(). * Initialize ->dma_timer_expiry to ide_dma_sff_timer_expiry() for SFF hosts. * Move setting hwif->expiry from ide_execute_command() to its users and drop 'expiry' argument. * Use ide_execute_command() instead of ->dma_exec_cmd in do_rw_taskfile(). * Remove ->dma_exec_cmd method and its implementations. * Unexport ide_execute_command() and ide_dma_intr(). v2: * Fix CONFIG_BLK_DEV_IDEDMA=n build (noticed by Randy Dunlap). * Fix *dma_expiry naming (suggested by Sergei Shtylyov). There should be no functional changes caused by this patch. Cc: Randy Dunlap <[email protected]> Cc: Sergei Shtylyov <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: set hwif->expiry prior to calling [__]ide_set_handler()Bartlomiej Zolnierkiewicz1-4/+2
* Set hwif->expiry prior to calling [__]ide_set_handler() and drop 'expiry' argument. * Set hwif->expiry to NULL in ide_{timer_expiry,intr}() and remove 'hwif->expiry = NULL' assignments. There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: use do_rw_taskfile() for ATA_CMD_PACKET commandsBartlomiej Zolnierkiewicz1-1/+1
* Pass command to ide_issue_pc() and update ->do_request methods in ide-{cd,floppy,tape}.c accordingly. * Convert ide_pktcmd_tf_load() to ide_init_packet_cmd() which just initializes command structure and use do_rw_taskfile() to load ATA_CMD_PACKET commands. While at it: * Rename ide{floppy,tape}_issue_pc() to ide_{floppy,tape}_issue_pc(). There should be no functional changes caused by this patch. Acked-by: Borislav Petkov <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: pass command to ide_map_sg()Bartlomiej Zolnierkiewicz1-6/+6
* Set IDE_TFLAG_WRITE flag and ->rq also for ATA_CMD_PACKET commands. * Pass command to ->dma_setup method and update all its implementations accordingly. * Pass command instead of request to ide_build_sglist(), *_build_dmatable() and ide_map_sg(). While at it: * Fix scc_dma_setup() documentation + use ATA_DMA_WR define. * Rename sgiioc4_build_dma_table() to sgiioc4_build_dmatable(), change return value type to 'int' and drop unused 'ddir' argument. * Do some minor cleanups in [tx4939]ide_dma_setup(). There should be no functional changes caused by this patch. Acked-by: Borislav Petkov <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: remove ide_end_request()Bartlomiej Zolnierkiewicz1-1/+1
* Add ide_rq_bytes() helper. * Add blk_noretry_request() quirk to ide_complete_rq() (currently only fs requests can be marked as "noretry" so there is no change in behavior). * Switch current ide_end_request() users to use ide_complete_rq(). [ No need to check for rq->nr_sectors == 0 in {ide_dma,task_pio}_intr(), nsectors == 0 in cdrom_end_request() and err == 0 in ide_do_devset(). ] * Remove no longer needed ide_end_request(). There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: pass number of bytes to complete to ide_complete_rq()Bartlomiej Zolnierkiewicz1-1/+1
There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: remove BUG() from ide_complete_rq()Bartlomiej Zolnierkiewicz1-1/+1
It is no longer needed so remove it, also while at it dequeue the request only on blk_end_request() success and make ide_complete_rq() return an error value. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: pass error value to ide_complete_rq()Bartlomiej Zolnierkiewicz1-1/+1
Set rq->errors at ide_complete_rq() call sites and then pass error value to ide_complete_rq(). [ Some rq->errors assignments look really wrong but this patch leaves them alone to not introduce too many changes at once. ] There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: add ide_end_rq() (v2)Bartlomiej Zolnierkiewicz1-1/+1
* Move request dequeuing from __ide_end_request() to ide_end_request(). * Rename __ide_end_request() to ide_end_rq() and export it. * Fix ide_end_rq() to pass original blk_end_request() return value. * ide_end_dequeued_request() is used only in cdrom_end_request() so inline it there and then remove the function. v2: * Remove needless BUG_ON() while at it (start_request()'s one is enough). There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: use ata_tf_protocols enumsBartlomiej Zolnierkiewicz1-1/+2
* Add IDE_TFLAG_MULTI_PIO taskfile flag and set it for commands using multi-PIO protocol. * Use ata_tf_protocols enums instead of TASKFILE_* defines to denote command's protocol and then rename ->data_phase field to ->protocol. * Remove no longer needed <linux/hdreg.h> includes. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: move command related fields from ide_hwif_t to struct ide_cmdBartlomiej Zolnierkiewicz1-9/+11
* Move command related fields from ide_hwif_t to struct ide_cmd. * Make ide_init_sg_cmd() take command and sectors number as arguments. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: pass command instead of request to ide_pio_datablock()Bartlomiej Zolnierkiewicz1-8/+9
* Add IDE_TFLAG_FS taskfile flag and set it for REQ_TYPE_FS requests. * Convert ->{in,out}put_data methods to take command instead of request as an argument. Then convert pre_task_out_intr(), task_end_request(), task_error(), task_in_unexpected(), ide_pio_sector(), ide_pio_multi() and ide_pio_datablock() in similar way. * Rename task_end_request() to ide_finish_cmd(). There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: remove ide_task_t typedefBartlomiej Zolnierkiewicz1-13/+13
While at it: - rename struct ide_task_s to struct ide_cmd - remove stale comments from idedisk_{read_native,set}_max_address() - drop unused 'cmd' argument from ide_{cmd,task}_ioctl() - drop unused 'task' argument from tx4939ide_tf_load_fixup() - rename ide_complete_task() to ide_complete_cmd() - use consistent naming for struct ide_cmd variables There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: call ide_build_sglist() prior to ->dma_setup (v2)Bartlomiej Zolnierkiewicz1-0/+2
* Re-map sg table if needed in ide_build_sglist(). * Move ide_build_sglist() call from ->dma_setup to its users. * Un-export ide_build_sglist(). v2: * Build fix for CONFIG_BLK_DEV_IDEDMA=n (noticed by Randy Dunlap). There should be no functional changes caused by this patch. Cc: Randy Dunlap <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: return request status from ->pc_callback methodBartlomiej Zolnierkiewicz1-1/+1
Make ->pc_callback method return request status and then move the request completion from ->pc_callback to ide_pc_intr(). There should be no functional changes caused by this patch. Acked-by: Borislav Petkov <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: remove ->end_request methodBartlomiej Zolnierkiewicz1-2/+0
* Handle completion of private driver requests explicitly for ide_floppy and ide_tape media in ide_kill_rq(). * Remove no longer needed ->end_request method. There should be no functional changes caused by this patch. Acked-by: Borislav Petkov <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: use ->end_request only for private device driver requestsBartlomiej Zolnierkiewicz1-0/+7
* Move IDE{FLOPPY,TAPE}_ERROR_* defines to <linux/ide.h> and rename them to IDE_DRV_ERROR_*. * Handle ->end_request special cases for floppy/tape media in ide_kill_rq(). * Call ->end_request only for private device driver requests. There should be no functional changes caused by this patch. Acked-by: Borislav Petkov <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: move ->failed_pc to ide_drive_tBartlomiej Zolnierkiewicz1-0/+3
Move ->failed_pc from struct ide_{disk,tape}_obj to ide_drive_t. There should be no functional changes caused by this patch. Acked-by: Borislav Petkov <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: remove no longer needed PC_FLAG_TIMEDOUT packet command flagBartlomiej Zolnierkiewicz1-2/+0
There should be no functional changes caused by this patch. Acked-by: Borislav Petkov <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: remove ->data_phase field from ide_hwif_tBartlomiej Zolnierkiewicz1-3/+0
* Always use hwif->task->data_phase and remove ->data_phase field from ide_hwif_t. * Remove superfluous REQ_TYPE_ATA_TASKFILE check from ide_pio_datablock() while at it. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: move request type specific code from ide_end_drive_cmd() to callers (v3)Bartlomiej Zolnierkiewicz1-1/+2
* Move request type specific code from ide_end_drive_cmd() to callers. * Remove stale ide_end_drive_cmd() documentation and drop no longer used 'stat' argument. Then rename the function to ide_complete_rq(). v2: * Fix handling of blk_pm_request() requests in task_no_data_intr(). v3: * Some ide_no_data_taskfile() users (HPA code and HDIO_DRIVE_* ioctls handlers) access original command later so we need to update it in ide_complete_task(). There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: complete power step in ide_complete_pm_request()Bartlomiej Zolnierkiewicz1-1/+1
* Complete power step in ide_complete_pm_request(). * Rename ide_complete_pm_request() to ide_complete_pm_rq(). There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: add "flagged" taskfile flags to struct ide_taskfile (v2)Bartlomiej Zolnierkiewicz1-31/+35
* Add ->ftf_flags field to struct ide_taskfile and convert flags for TASKFILE ioctl to use it. * Rename "flagged" taskfile flags: - IDE_TFLAG_FLAGGED -> IDE_FTFLAG_FLAGGED - IDE_TFLAG_FLAGGED_SET_IN_FLAGS -> IDE_FTFLAG_SET_IN_FLAGS - IDE_TFLAG_{OUT,IN}_DATA -> IDE_FTFLAG_{OUT,IN}_DATA v2: * Remember to fully update ide-h8300.c, scc_pata.c and tx493{8,9}ide.c (thanks to Stephen Rothwell for noticing). There should be no functional changes caused by this patch. Cc: Stephen Rothwell <[email protected]> Acked-by: Sergei Shtylyov <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: add IDE_HFLAG_4DRIVES host flagBartlomiej Zolnierkiewicz1-0/+2
Add IDE_HFLAG_4DRIVES host flag and use it instead of ide_4drives chipset type in ide_init_port(). There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: add IDE_HFLAG_DTC2278 host flagBartlomiej Zolnierkiewicz1-0/+2
Add IDE_HFLAG_DTC2278 host flag and use it instead of ide_dtc2278 chipset type in ide_init_port(). There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: allow host drivers to specify IRQ flagsBartlomiej Zolnierkiewicz1-0/+6
* Add ->irq_flags field to struct ide_port_info and struct ide_host. * Update host drivers and IDE PCI code to use ->irq_flags field. * Convert init_irq() and ide_intr() to use host->irq_flags. This fixes handling of shared IRQs for non-PCI hosts and removes ugly ifdeffery from core IDE code. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: fix memleak on failure in probe_for_drive()Bartlomiej Zolnierkiewicz1-2/+0
Always free drive->id in probe_for_drive() if device is not present. While at it: - remove dead IDE_DFLAG_DEAD flag - remove superfluous IDE_DFLAG_PRESENT check Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: include <asm/ide.h> only when neededBartlomiej Zolnierkiewicz1-7/+0
Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: remove IDE_ARCH_LOCK (v2)Bartlomiej Zolnierkiewicz1-6/+11
* Add ->{get,release}_lock methods to struct ide_port_info and struct ide_host. * Convert core IDE code, m68k IDE code and falconide support to use ->{get,release}_lock methods instead of ide_{get,release}_lock(). * Remove IDE_ARCH_LOCK. v2: * Build fix from Geert updating ide_{get,release}_lock() callers in falconide.c. Cc: Geert Uytterhoeven <[email protected]> Cc: Michael Schmitz <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: remove IDE_ARCH_INTR (v2)Bartlomiej Zolnierkiewicz1-5/+0
This micro-optimization is not worth it. Just always check for existence of ->ack_intr method in ide_intr() and ide_timer_expiry(). v2: Fix brown-paper-bag bug spotted by David D. Kilzer. Cc: Geert Uytterhoeven <[email protected]> Cc: Michael Schmitz <[email protected]> Cc: "David D. Kilzer" <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-27ide: improve debugging schemeBorislav Petkov1-4/+5
and more specifically, push __func__ into debug macro thus making ide_debug_log() calls shorter and more readable. Signed-off-by: Borislav Petkov <[email protected]>
2009-03-24ide: use try_to_identify() in ide_driveid_update()Bartlomiej Zolnierkiewicz1-0/+2
* Pass pointer to buffer for IDENTIFY data to do_identify() and try_to_identify(). * Un-static try_to_identify() and use it in ide_driveid_update(). * Rename try_to_identify() to ide_dev_read_id(). There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-24mn10300: remove <asm/ide.h>Bartlomiej Zolnierkiewicz1-3/+2
* Remove superfluous <asm/intctl-regs.h> include. * Remove no longer used SUPPORT_SLOW_DATA_PORTS define. * Move defining SUPPORT_VLB_SYNC to <linux/ide.h>. * Use __ide_mm_*() macros from <asm-generic/ide_iops.h> (MN10300 uses only memory-mapped I/O). * Remove <asm/ide.h>. While at it: * Remove superfluous SPARC64 #ifdef from <linux/ide.h>. Cc: David Howells <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-24frv: remove <asm/ide.h>Bartlomiej Zolnierkiewicz1-2/+2
* Remove superfluous <asm/{setup,io,irq}.h> includes. * Remove <asm/ide.h>. Cc: David Howells <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-24ide: remove pciirq argument from ide_pci_setup_ports()Bartlomiej Zolnierkiewicz1-1/+1
* Set ->irq explicitly in cs5520.c. * Remove irq argument from ide_hw_configure(). * Remove pciirq argument from ide_pci_setup_ports(). There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-24ide: fix ->init_chipset method to return 'int' valueBartlomiej Zolnierkiewicz1-2/+2
* Return 0 instead of dev->irq in ->init_chipset implementations. * Fix ->init_chipset method to return 'int' value instead of 'unsigned int' one. This fixes ->init_chipset handling for host drivers (cs5530, hpt366 and pdc202xx_new) for which it is possible for this method to fail. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-24ide: remove no longer needed IRQ fallback code from hwif_init()Bartlomiej Zolnierkiewicz1-15/+0
Then remove no longer used __ide_default_irq(). Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-24ide: remove no longer needed IDE_HFLAG[_FORCE]_LEGACY_IRQSBartlomiej Zolnierkiewicz1-4/+0
There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-24ide: move error handling code to ide-eh.c (v2)Bartlomiej Zolnierkiewicz1-5/+8
Do some CodingStyle fixups in <linux/ide.h> while at it. v2: Add missing <linux/delay.h> include (reported by Stephen Rothwell). Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-24ide: move xfer mode tuning code to ide-xfer-mode.cBartlomiej Zolnierkiewicz1-5/+7
* Move xfer mode tuning code to ide-xfer-mode.c. * Add CONFIG_IDE_XFER_MODE config option to be selected by host drivers that support xfer mode tuning. * Add CONFIG_IDE_XFER_MODE=n static inline versions of ide_set_pio() and ide_set_xfer_rate(). * Make IDE_TIMINGS and BLK_DEV_IDEDMA config options select IDE_XFER_MODE, also add explicit selects for few host drivers that need it. * Build/link ide-xfer-mode.o and ide-pio-blacklist.o (it is needed only by ide-xfer-mode.o) only if CONFIG_IDE_XFER_MODE=y. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-24ide: move device settings code to ide-devsets.cBartlomiej Zolnierkiewicz1-0/+1
Remove stale comment from ide.c while at it. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-24ide: move ide_do_park_unpark() to ide-park.cBartlomiej Zolnierkiewicz1-0/+2
Acked-by: Sergei Shtylyov <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-24ide: remove ide_do_drive_cmd()Bartlomiej Zolnierkiewicz1-2/+0
* Use elv_add_request() instead of __elv_add_request() in ide_do_drive_cmd(). * ide_do_drive_cmd() is used only in ide-{atapi,cd}.c so inline it there. There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-24ide: move ide_dma_timeout_retry() to ide-dma.cBartlomiej Zolnierkiewicz1-0/+2
Move ide_dma_timeout_retry() to ide-dma.c and add static inline version for CONFIG_BLK_DEV_IDEDMA=n. Acked-by: Sergei Shtylyov <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-24ide: move drive_is_ready() to ide-io.cBartlomiej Zolnierkiewicz1-2/+0
Move drive_is_ready() to ide-io.c, then make it static. Also make some minor CodingStyle fixups while at it. Acked-by: Sergei Shtylyov <[email protected]> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-24ide: sanitize ACPI initializationBartlomiej Zolnierkiewicz1-2/+4
* ide_acpi_init() -> ide_acpi_init_port() * ide_acpi_blacklist() -> ide_acpi_init() * Call ide_acpi_init() only once (do it during IDE core initialization) and cleanup the function accordingly. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
2009-03-24ide: add ide_for_each_present_dev() iteratorBartlomiej Zolnierkiewicz1-0/+4
* Add ide_for_each_present_dev() iterator and convert IDE code to use it. * Do some drive-by CodingStyle fixups in ide-acpi.c while at it. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>