Messages in this thread | | | Date | Sun, 6 Feb 2005 22:09:27 +0100 (CET) | From | Bartlomiej Zolnierkiewicz <> | Subject | [BK PATCHES] ide-dev-2.6 update |
| |
Hi,
ChangeLog:
* sync with linux-2.6 tree * merge "convert IDE device drivers to driver model" serie (except the last patch which is the actual conversion :) * fix ATAPI Power Management
BK users:
bk pull bk://bart.bkbits.net/ide-dev-2.6
This will update the following files:
drivers/ide/ide-default.c | 73 --------- drivers/ide/Kconfig | 8 - drivers/ide/Makefile | 3 drivers/ide/ide-cd.c | 220 +++++++++++++++++---------- drivers/ide/ide-cd.h | 4 drivers/ide/ide-disk.c | 327 +++++++++++++++-------------------------- drivers/ide/ide-dma.c | 4 drivers/ide/ide-floppy.c | 172 +++++++++++++++++---- drivers/ide/ide-io.c | 215 +++++++++++++++++++++++++- drivers/ide/ide-iops.c | 20 ++ drivers/ide/ide-probe.c | 184 +++++++++++++++-------- drivers/ide/ide-proc.c | 20 +- drivers/ide/ide-tape.c | 227 +++++++++++++++++++++------- drivers/ide/ide-taskfile.c | 20 +- drivers/ide/ide.c | 166 ++++---------------- drivers/ide/pci/pdc202xx_new.c | 6 drivers/ide/pci/pdc202xx_old.c | 17 -- drivers/ide/pci/via82cxxx.c | 7 drivers/ide/setup-pci.c | 15 - drivers/scsi/ide-scsi.c | 111 ++++++++++++- include/linux/ide.h | 15 - 21 files changed, 1081 insertions(+), 753 deletions(-)
through these ChangeSets:
<bzolnier@trik.(none)> (05/02/06 1.2130) [ide] fix ATAPI Power Management
I've introduced bug in ATAPI Power Management handling, idedisk_pm_idle shouldn't be done for ATAPI devices.
<bzolnier@trik.(none)> (05/02/06 1.2129) [ide] fix pdc202xx_{new,old}.c after linux-2.6 merge
<bzolnier@trik.(none)> (05/02/04 1.2040.4.18) [ide] kill ide-default
* add ide_drives list to list devices without a driver * add __ide_add_setting() and use it for adding no auto remove entries * kill ide-default pseudo-driver
<bzolnier@trik.(none)> (05/02/04 1.2040.4.17) [ide] get driver from rq->rq_disk->private_data
* add ide_driver_t * to device drivers objects * set it to point at driver's ide_driver_t * store address of this entry in disk->private_data * fix ide_{cd,disk,floppy,tape,scsi}_g accordingly * use rq->rq_disk->private_data instead of drive->driver to obtain driver (this allows us to kill ide-default)
<bzolnier@trik.(none)> (05/02/04 1.2040.4.16) [ide] kill ide_drive_t->disk
* move ->disk from ide_drive_t to driver specific objects * make drivers allocate struct gendisk and setup rq->rq_disk (there is no need to do this for REQ_DRIVE_TASKFILE requests) * add ide_init_disk() helper and kill alloc_disks() in ide-probe.c * kill no longer needed ide_open() and ide_fops[] in ide.c
<bzolnier@trik.(none)> (05/02/04 1.2040.4.15) [ide] add ide_{un}register_region()
Add ide_{un}register_region() and fix ide-{tape,scsi}.c to register block device number ranges. In ata_probe() only probe for modules.
Behavior is unchanged because: * if driver is already loaded and attached to drive ata_probe() is not called et all * if driver is loaded by ata_probe() it will register new number range for a drive and this range will be found by kobj_lookup()
If this is not clear please read http://lwn.net/Articles/25711/ and see drivers/base/map.c.
This patch makes it possible to move drive->disk allocation from ide-probe.c to device drivers.
<bzolnier@trik.(none)> (05/02/04 1.2040.4.14) [ide] destroy_proc_ide_device() cleanup
When this function is called device is already unbinded from a driver so there are no driver /proc entries to remove.
<bzolnier@trik.(none)> (05/02/04 1.2040.4.13) [ide] drive->dsc_overlap fix
drive->dsc_overlap is supported only by ide-{cd,tape} drivers. Add missing clearing of ->dsc_overlap to ide_{cd,tape}_release() and move ->dsc_overlap setup from ide_register_subdriver() to ide_cdrom_setup() (ide-tape enables it unconditionally).
<bzolnier@trik.(none)> (05/02/04 1.2040.4.12) [ide] drive->nice1 fix
It is drive's property independent of the driver being used so move drive->nice1 setup from ide_register_subdriver() to probe_hwif() in ide-probe.c. As a result changing a driver which controls the drive no longer affects this flag.
<bzolnier@trik.(none)> (05/02/04 1.2040.4.11) [ide] ide-tape: fix character device ->open() vs ->cleanup() race
Similar to the same race but for the block device.
* store pointer to struct ide_tape_obj in idetape_chrdevs[] * rename idetape_chrdevs[] to idetape_devs[] and kill idetape_chrdev_t * add ide_tape_chrdev_get() for getting reference to the tape * store tape pointer in file->private_data and fix all users of it * fix idetape_chrdev_{open,release}() to get/put reference to the tape
<bzolnier@trik.(none)> (05/02/03 1.2040.4.10) [ide] fix via82cxxx resume failure
With David Woodhouse <dwmw2@infradead.org>.
On resume from sleep, via_set_speed() doesn't reinstate the correct mode, because it thinks the drive is already configured correctly.
Also kill redundant printk, ide_config_drive_speed() warns about errors.
<bzolnier@trik.(none)> (05/02/03 1.2040.4.9) [ide] ide-scsi: add basic refcounting
* pointers to a SCSI host and a drive are added to idescsi_scsi_t * pointer to the SCSI host is stored in disk->private_data * ide_scsi_{get,put}() is used to {get,put} reference to the SCSI host
<bzolnier@trik.(none)> (05/02/03 1.2040.4.8) [ide] ide-tape: add basic refcounting
Similar changes as for ide-cd.c.
<bzolnier@trik.(none)> (05/02/03 1.2040.4.7) [ide] ide-floppy: add basic refcounting
Similar changes as for ide-cd.c.
<bzolnier@trik.(none)> (05/02/03 1.2040.4.6) [ide] ide-disk: add basic refcounting
Similar changes as for ide-cd.c (except that struct ide_disk_obj is added).
<bzolnier@trik.(none)> (05/02/03 1.2040.4.5) [ide] ide-cd: add basic refcounting
* based on reference counting in drivers/scsi/{sd,sr}.c * fixes race between ->open() and ->cleanup() (ide_unregister_subdriver() tests for drive->usage != 0 but there is no protection against new users) * struct kref and pointer to a drive are added to struct ide_cdrom_info * pointer to drive's struct ide_cdrom_info is stored in disk->private_data * ide_cd_{get,put}() is used to {get,put} reference to struct ide_cdrom_info * ide_cd_release() is a release method for struct ide_cdrom_info
<bzolnier@trik.(none)> (05/02/03 1.2040.4.4) [ide] make ide_generic_ioctl() take ide_drive_t * as an argument
As a result disk->private_data can be used by device drivers now.
<bzolnier@trik.(none)> (05/02/03 1.2040.4.3) [ide] kill setup_driver_defaults()
* move default_do_request() to ide-default.c * fix drivers to set ide_driver_t->{do_request,end_request,error,abort} * kill setup_driver_defaults()
<bzolnier@trik.(none)> (05/02/03 1.2040.4.2) [ide] kill ide_driver_t->capacity
* add private /proc/ide/hd?/capacity handlers to ide-{cd,disk,floppy}.c * use generic proc_ide_read_capacity() for ide-{scsi,tape}.c * kill ->capacity, default_capacity() and generic_subdriver_entries[]
<bzolnier@trik.(none)> (05/01/21 1.1966.85.144) [ide] kill ide_driver_t->pre_reset
Add ide_drive_t->post_reset flag and use it to signal post reset condition to the ide-tape driver (the only user of ->pre_reset).
<bzolnier@trik.(none)> (05/01/21 1.1966.85.143) [ide] fix some rare ide-default vs ide-disk races
Some rare races between ide-default and ide-disk are possible, i.e.: * ide-default is used, I/O request is triggered (ie. /proc/ide/hd?/identify), drive->special is cleared silently (so CHS is not initialized properly), ide-disk is loaded and fails if drive uses CHS * ide-disk is used, drive is resetted, ide-disk is unloaded, ide-default takes control over drive and on the first I/O request silently clears drive->special without restoring settings
Fix them by moving idedisk_{special,pre_reset}() and company to IDE core.
<bzolnier@trik.(none)> (05/01/21 1.1966.85.142) [ide] generic Power Management for IDE devices
Move PM code from ide-cd.c and ide-disk.c to IDE core so: * PM is supported for other ATAPI devices (floppy, tape) * PM is supported even if specific driver is not loaded
<bzolnier@trik.(none)> (05/01/21 1.1966.85.141) [ide] fix drive->ready_stat for ATAPI
ATAPI devices ignore DRDY bit so drive->ready_stat must be set to zero. It is currently done by device drivers (including ide-default fake driver) but for PMAC driver it is too late as wait_for_ready() may be called during probe: probe_hwif()->pmac_ide_dma_check()->pmac_ide_{mdma,udma}_enable()-> ->pmac_ide_do_setfeature()->wait_for_ready().
Fixup drive->ready_stat just after detecting ATAPI device.
<bzolnier@trik.(none)> (05/01/21 1.1966.85.140) [ide] ignore BIOS enable bits for Promise controllers
Since there are no Promise binary drivers for 2.6.x kernels: * ignore BIOS enable bits completely * remove CONFIG_PDC202XX_FORCE * kill IDEPCI_FLAG_FORCE_PDC hack
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |