Re: Kill unused/obsolete power managment from ide

Alan Cox (alan@redhat.com)
Wed, 13 Nov 2002 16:15:31 -0500 (EST)


> This is same patch you already seen, just rediffed to -ac2. Please
> apply. No code should be changed except for case of ide-disk connected
> using ATAPI. Such thing does not exist, AFAIK.

A few western digital drives can be connected as ATAPI devices with
ide-scsi. This is silly and if I remember rightly we dont generate
a cache flush for that at the moment either

[As an aside Im curious if we should for floppy etc]

> Pavel
>
> --- clean-ac/drivers/ide/ide-disk.c 2002-11-12 18:40:35.000000000 +0100
> +++ linux-ac/drivers/ide/ide-disk.c 2002-11-13 22:00:22.000000000 +0100
> @@ -1412,24 +1412,6 @@
> return call_idedisk_standby(drive, 0);
> }
>
> -static int call_idedisk_suspend (ide_drive_t *drive, int arg)
> -{
> - ide_task_t args;
> - u8 suspend = (arg) ? WIN_SLEEPNOW2 : WIN_SLEEPNOW1;
> - memset(&args, 0, sizeof(ide_task_t));
> - args.tfRegister[IDE_COMMAND_OFFSET] = suspend;
> - args.command_type = ide_cmd_type_parser(&args);
> - return ide_raw_taskfile(drive, &args, NULL);
> -}
> -
> -static int do_idedisk_suspend (ide_drive_t *drive)
> -{
> - if (drive->suspend_reset)
> - return 1;
> -
> - return call_idedisk_suspend(drive, 0);
> -}
> -
> #if 0
> static int call_idedisk_checkpower (ide_drive_t *drive, int arg)
> {
> @@ -1456,13 +1438,6 @@
> }
> #endif
>
> -static int do_idedisk_resume (ide_drive_t *drive)
> -{
> - if (!drive->suspend_reset)
> - return 1;
> - return 0;
> -}
> -
> static int do_idedisk_flushcache (ide_drive_t *drive)
> {
> ide_task_t args;
> @@ -1671,6 +1646,7 @@
> {
> struct gendisk *g = drive->disk;
>
> + do_idedisk_standby(drive);
> if ((drive->id->cfs_enable_2 & 0x3000) && drive->wcache)
> if (do_idedisk_flushcache(drive))
> printk (KERN_INFO "%s: Write Cache FAILED Flushing!\n",
> @@ -1696,9 +1672,6 @@
> .supports_dma = 1,
> .supports_dsc_overlap = 0,
> .cleanup = idedisk_cleanup,
> - .standby = do_idedisk_standby,
> - .suspend = do_idedisk_suspend,
> - .resume = do_idedisk_resume,
> .flushcache = do_idedisk_flushcache,
> .do_request = do_rw_disk,
> .sense = idedisk_dump_status,
> @@ -1835,8 +1808,7 @@
>
> static int idedisk_init (void)
> {
> - ide_register_driver(&idedisk_driver);
> - return 0;
> + return ide_register_driver(&idedisk_driver);
> }
>
> module_init(idedisk_init);
> --- clean-ac/drivers/ide/ide.c 2002-11-13 21:38:11.000000000 +0100
> +++ linux-ac/drivers/ide/ide.c 2002-11-13 22:01:12.000000000 +0100
> @@ -2145,36 +2145,6 @@
> drive->dead = 1;
> return 0;
> }
> -
> -/*
> - * Default function to use on an APM standby. This is going away
> - * as Pavel is moving this to sysfs
> - */
> -
> -static int default_standby (ide_drive_t *drive)
> -{
> - return 0;
> -}
> -
> -/*
> - * Default function to use on an APM suspend. This is going away
> - * as Pavel is moving this to sysfs
> - */
> -
> -static int default_suspend (ide_drive_t *drive)
> -{
> - return 0;
> -}
> -
> -/*
> - * Default function to use on an APM suspend. This is going away
> - * as Pavel is moving this to sysfs
> - */
> -
> -static int default_resume (ide_drive_t *drive)
> -{
> - return 0;
> -}
>
> /*
> * Default function to use for the cache flush operation. This
> @@ -2243,9 +2213,6 @@
>
> if (d->cleanup == NULL) d->cleanup = default_cleanup;
> if (d->shutdown == NULL) d->shutdown = default_shutdown;
> - if (d->standby == NULL) d->standby = default_standby;
> - if (d->suspend == NULL) d->suspend = default_suspend;
> - if (d->resume == NULL) d->resume = default_resume;
> if (d->flushcache == NULL) d->flushcache = default_flushcache;
> if (d->do_request == NULL) d->do_request = default_do_request;
> if (d->end_request == NULL) d->end_request = default_end_request;
> @@ -2324,13 +2291,8 @@
> ide_drive_t * drive = container_of(dev,ide_drive_t,gendev);
> ide_driver_t * driver = drive->driver;
>
> - if (driver) {
> - if (driver->standby)
> - driver->standby(drive);
> - if (driver->cleanup)
> - driver->cleanup(drive);
> - }
> -
> + if (driver && driver->cleanup)
> + driver->cleanup(drive);
> return 0;
> }
>
> --- clean-ac/include/linux/ide.h 2002-11-13 21:38:17.000000000 +0100
> +++ linux-ac/include/linux/ide.h 2002-11-13 22:00:36.000000000 +0100
> @@ -1191,9 +1191,6 @@
> unsigned supports_dsc_overlap : 1;
> int (*cleanup)(ide_drive_t *);
> int (*shutdown)(ide_drive_t *);
> - int (*standby)(ide_drive_t *);
> - int (*suspend)(ide_drive_t *);
> - int (*resume)(ide_drive_t *);
> int (*flushcache)(ide_drive_t *);
> ide_startstop_t (*do_request)(ide_drive_t *, struct request *, sector_t);
> int (*end_request)(ide_drive_t *, int, int);
>
> --
> Worst form of spam? Adding advertisment signatures ala sourceforge.net.
> What goes next? Inserting advertisment *into* email?
>

-
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/