Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (100 commits) ide: move hwif_register() call out of ide_probe_port() ide: factor out code for tuning devices from ide_probe_port() ide: move handling of I/O resources out of ide_probe_port() ide: make probe_hwif() return an error value ide: use ide_remove_port_from_hwgroup in init_irq() ide: prepare init_irq() for using ide_remove_port_from_hwgroup() ide: factor out code removing port from hwgroup from ide_unregister() ide: I/O resources are released too early in ide_unregister() ide: cleanup ide_system_bus_speed() ide: remove needless zeroing of hwgroup fields from init_irq() ide: remove unused ide_hwgroup_t fields ide_platform: remove struct hwif_prop ide: remove hwif->present manipulations from hwif_init() ide: move wait_hwif_ready() documentation in the right place ide: fix handling of busy I/O resources in probe_hwif() <linux/hdsmart.h> is not used by kernel code ide: don't include <linux/hdsmart.h> ide-floppy: cleanup header ide: update/add my Copyrights ide: delete filenames/versions from comments ...
This commit is contained in:
@@ -1187,6 +1187,20 @@ struct media_event_desc {
|
||||
|
||||
extern int cdrom_get_media_event(struct cdrom_device_info *cdi, struct media_event_desc *med);
|
||||
|
||||
static inline void lba_to_msf(int lba, u8 *m, u8 *s, u8 *f)
|
||||
{
|
||||
lba += CD_MSF_OFFSET;
|
||||
lba &= 0xffffff; /* negative lbas use only 24 bits */
|
||||
*m = lba / (CD_SECS * CD_FRAMES);
|
||||
lba %= (CD_SECS * CD_FRAMES);
|
||||
*s = lba / CD_FRAMES;
|
||||
*f = lba % CD_FRAMES;
|
||||
}
|
||||
|
||||
static inline int msf_to_lba(u8 m, u8 s, u8 f)
|
||||
{
|
||||
return (((m * CD_SECS) + s) * CD_FRAMES + f) - CD_MSF_OFFSET;
|
||||
}
|
||||
#endif /* End of kernel only stuff */
|
||||
|
||||
#endif /* _LINUX_CDROM_H */
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
#ifndef _LINUX_HDSMART_H
|
||||
#define _LINUX_HDSMART_H
|
||||
|
||||
#ifndef __KERNEL
|
||||
#define OFFLINE_FULL_SCAN 0
|
||||
#define SHORT_SELF_TEST 1
|
||||
#define EXTEND_SELF_TEST 2
|
||||
@@ -120,5 +121,6 @@ typedef struct ata_smart_selftestlog_s {
|
||||
unsigned char resevered[2];
|
||||
unsigned char chksum;
|
||||
} __attribute__ ((packed)) ata_smart_selftestlog_t;
|
||||
#endif /* __KERNEL__ *
|
||||
|
||||
#endif /* _LINUX_HDSMART_H */
|
||||
|
||||
+20
-20
@@ -9,7 +9,6 @@
|
||||
#include <linux/init.h>
|
||||
#include <linux/ioport.h>
|
||||
#include <linux/hdreg.h>
|
||||
#include <linux/hdsmart.h>
|
||||
#include <linux/blkdev.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/interrupt.h>
|
||||
@@ -503,7 +502,8 @@ typedef struct hwif_s {
|
||||
|
||||
hwif_chipset_t chipset; /* sub-module for tuning.. */
|
||||
|
||||
struct pci_dev *pci_dev; /* for pci chipsets */
|
||||
struct device *dev;
|
||||
|
||||
const struct ide_port_info *cds; /* chipset device struct */
|
||||
|
||||
ide_ack_intr_t *ack_intr;
|
||||
@@ -628,8 +628,7 @@ typedef int (ide_expiry_t)(ide_drive_t *);
|
||||
typedef struct hwgroup_s {
|
||||
/* irq handler, if active */
|
||||
ide_startstop_t (*handler)(ide_drive_t *);
|
||||
/* irq handler, suspended if active */
|
||||
ide_startstop_t (*handler_save)(ide_drive_t *);
|
||||
|
||||
/* BOOL: protects all fields below */
|
||||
volatile int busy;
|
||||
/* BOOL: wake us up on timer expiry */
|
||||
@@ -644,25 +643,18 @@ typedef struct hwgroup_s {
|
||||
/* ptr to current hwif in linked-list */
|
||||
ide_hwif_t *hwif;
|
||||
|
||||
/* for pci chipsets */
|
||||
struct pci_dev *pci_dev;
|
||||
|
||||
/* current request */
|
||||
struct request *rq;
|
||||
|
||||
/* failsafe timer */
|
||||
struct timer_list timer;
|
||||
/* local copy of current write rq */
|
||||
struct request wrq;
|
||||
/* timeout value during long polls */
|
||||
unsigned long poll_timeout;
|
||||
/* queried upon timeouts */
|
||||
int (*expiry)(ide_drive_t *);
|
||||
/* ide_system_bus_speed */
|
||||
int pio_clock;
|
||||
|
||||
int req_gen;
|
||||
int req_gen_timer;
|
||||
|
||||
unsigned char cmd_buf[4];
|
||||
} ide_hwgroup_t;
|
||||
|
||||
typedef struct ide_driver_s ide_driver_t;
|
||||
@@ -986,8 +978,6 @@ ide_startstop_t do_rw_taskfile(ide_drive_t *, ide_task_t *);
|
||||
|
||||
void task_end_request(ide_drive_t *, struct request *, u8);
|
||||
|
||||
u8 wait_drive_not_busy(ide_drive_t *);
|
||||
|
||||
int ide_raw_taskfile(ide_drive_t *, ide_task_t *, u8 *, u16);
|
||||
int ide_no_data_taskfile(ide_drive_t *, ide_task_t *);
|
||||
|
||||
@@ -1017,7 +1007,6 @@ void ide_init_disk(struct gendisk *, ide_drive_t *);
|
||||
|
||||
#ifdef CONFIG_IDEPCI_PCIBUS_ORDER
|
||||
extern int ide_scan_direction;
|
||||
int __init ide_scan_pcibus(void);
|
||||
extern int __ide_pci_register_driver(struct pci_driver *driver, struct module *owner, const char *mod_name);
|
||||
#define ide_pci_register_driver(d) __ide_pci_register_driver(d, THIS_MODULE, KBUILD_MODNAME)
|
||||
#else
|
||||
@@ -1096,6 +1085,10 @@ enum {
|
||||
IDE_HFLAG_ABUSE_SET_DMA_MODE = (1 << 26),
|
||||
/* host is CY82C693 */
|
||||
IDE_HFLAG_CY82C693 = (1 << 27),
|
||||
/* force host out of "simplex" mode */
|
||||
IDE_HFLAG_CLEAR_SIMPLEX = (1 << 28),
|
||||
/* DSC overlap is unsupported */
|
||||
IDE_HFLAG_NO_DSC = (1 << 29),
|
||||
};
|
||||
|
||||
#ifdef CONFIG_BLK_DEV_OFFBOARD
|
||||
@@ -1153,12 +1146,13 @@ void ide_dma_on(ide_drive_t *);
|
||||
int ide_set_dma(ide_drive_t *);
|
||||
ide_startstop_t ide_dma_intr(ide_drive_t *);
|
||||
|
||||
int ide_build_sglist(ide_drive_t *, struct request *);
|
||||
void ide_destroy_dmatable(ide_drive_t *);
|
||||
|
||||
#ifdef CONFIG_BLK_DEV_IDEDMA_PCI
|
||||
extern int ide_build_sglist(ide_drive_t *, struct request *);
|
||||
extern int ide_build_dmatable(ide_drive_t *, struct request *);
|
||||
extern void ide_destroy_dmatable(ide_drive_t *);
|
||||
extern int ide_release_dma(ide_hwif_t *);
|
||||
extern void ide_setup_dma(ide_hwif_t *, unsigned long, unsigned int);
|
||||
extern void ide_setup_dma(ide_hwif_t *, unsigned long);
|
||||
|
||||
void ide_dma_host_set(ide_drive_t *, int);
|
||||
extern int ide_dma_setup(ide_drive_t *);
|
||||
@@ -1197,6 +1191,7 @@ static inline void ide_acpi_init(ide_hwif_t *hwif) { ; }
|
||||
static inline void ide_acpi_set_state(ide_hwif_t *hwif, int on) {}
|
||||
#endif
|
||||
|
||||
void ide_remove_port_from_hwgroup(ide_hwif_t *);
|
||||
extern int ide_hwif_request_regions(ide_hwif_t *hwif);
|
||||
extern void ide_hwif_release_regions(ide_hwif_t* hwif);
|
||||
extern void ide_unregister (unsigned int index);
|
||||
@@ -1291,9 +1286,14 @@ extern struct bus_type ide_bus_type;
|
||||
#define ide_id_has_flush_cache_ext(id) \
|
||||
(((id)->cfs_enable_2 & 0x2400) == 0x2400)
|
||||
|
||||
static inline void ide_dump_identify(u8 *id)
|
||||
{
|
||||
print_hex_dump(KERN_INFO, "", DUMP_PREFIX_NONE, 16, 2, id, 512, 0);
|
||||
}
|
||||
|
||||
static inline int hwif_to_node(ide_hwif_t *hwif)
|
||||
{
|
||||
struct pci_dev *dev = hwif->pci_dev;
|
||||
struct pci_dev *dev = to_pci_dev(hwif->dev);
|
||||
return dev ? pcibus_to_node(dev->bus) : -1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user