Kill unused/obsolete power managment from ide
Hi!
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.
Pavel
drivers/ide/ide-disk.c +2 -30
@@ -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);
drivers/ide/ide.c +2 -40
60 lines not on this page · raw message
include/linux/ide.h +0 -3
@@ -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 );
Signature · 2 lines
Worst form of spam? Adding advertisment signatures ala sourceforge.net. What goes next? Inserting advertisment *into* email?
Quoted 3 lines
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]
Quoted 153 lines
Pavel
drivers/ide/ide-disk.c +2
-30@@ -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);drivers/ide/ide.c +2
-40@@ -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 ; }include/linux/ide.h +0
-3@@ -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 );Signature · 3 lines
-- Worst form of spam? Adding advertisment signatures ala sourceforge.net. What goes next? Inserting advertisment *into* email?
Hi!
Quoted 7 lines
Quoted 3 lines
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
Does this mean you've applied the patch below?
Pavel
Quoted 153 lines
[As an aside Im curious if we should for floppy etc]
Quoted 151 lines
drivers/ide/ide-disk.c +2
-30@@ -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);drivers/ide/ide.c +2
-40@@ -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 ; }include/linux/ide.h +0
-3@@ -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 );Signature · 3 lines
-- Worst form of spam? Adding advertisment signatures ala sourceforge.net. What goes next? Inserting advertisment *into* email?
Signature · 2 lines
Casualities in World Trade Center: ~3k dead inside the building, cryptography in U.S.A. and free speech in Czech Republic.