diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-05-09 18:01:10 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-05-09 18:01:10 -0400 |
commit | 7662d046df09e80680b77b68de896beab45e675e (patch) | |
tree | ea2281c59399b3867fb37e1005a0f0e0d2170c5d /drivers/ide/ide-cd.c | |
parent | 1497943ee692aa7519fa972d0e3a339649bf3a96 (diff) |
ide: move IDE settings handling to ide-proc.c
* move
__ide_add_setting()
ide_add_setting()
__ide_remove_setting()
auto_remove_settings()
ide_find_setting_by_name()
ide_read_setting()
ide_write_setting()
set_xfer_rate()
ide_add_generic_settings()
ide_register_subdriver()
ide_unregister_subdriver()
from ide.c to ide-proc.c
* set_{io_32bit,pio_mode,using_dma}() cannot be marked static now, fix it
* rename ide_[un]register_subdriver() to ide_proc_[un]register_driver(),
update device drivers to use new names
* add CONFIG_IDE_PROC_FS=n versions of ide_proc_[un]register_driver()
and ide_add_generic_settings()
* make ide_find_setting_by_name(), ide_{read,write}_setting()
and ide_{add,remove}_proc_entries() static
* cover IDE settings code in device drivers with CONFIG_IDE_PROC_FS #ifdef,
also while at it cover with CONFIG_IDE_PROC_FS #ifdef ide_driver_t.proc
* remove bogus comment from ide.h
* cover with CONFIG_IDE_PROC_FS #ifdef .proc and .settings in ide_drive_t
Besides saner code this patch results in the IDE core smaller by ~2 kB
(on x86-32) and IDE disk driver by ~1 kB (ditto) when CONFIG_IDE_PROC_FS=n.
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/ide-cd.c')
-rw-r--r-- | drivers/ide/ide-cd.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c index 29408cfd9869..252ab8295edf 100644 --- a/drivers/ide/ide-cd.c +++ b/drivers/ide/ide-cd.c | |||
@@ -3059,10 +3059,14 @@ int ide_cdrom_probe_capabilities (ide_drive_t *drive) | |||
3059 | return nslots; | 3059 | return nslots; |
3060 | } | 3060 | } |
3061 | 3061 | ||
3062 | #ifdef CONFIG_IDE_PROC_FS | ||
3062 | static void ide_cdrom_add_settings(ide_drive_t *drive) | 3063 | static void ide_cdrom_add_settings(ide_drive_t *drive) |
3063 | { | 3064 | { |
3064 | ide_add_setting(drive, "dsc_overlap", SETTING_RW, TYPE_BYTE, 0, 1, 1, 1, &drive->dsc_overlap, NULL); | 3065 | ide_add_setting(drive, "dsc_overlap", SETTING_RW, TYPE_BYTE, 0, 1, 1, 1, &drive->dsc_overlap, NULL); |
3065 | } | 3066 | } |
3067 | #else | ||
3068 | static inline void ide_cdrom_add_settings(ide_drive_t *drive) { ; } | ||
3069 | #endif | ||
3066 | 3070 | ||
3067 | /* | 3071 | /* |
3068 | * standard prep_rq_fn that builds 10 byte cmds | 3072 | * standard prep_rq_fn that builds 10 byte cmds |
@@ -3291,7 +3295,7 @@ static void ide_cd_remove(ide_drive_t *drive) | |||
3291 | { | 3295 | { |
3292 | struct cdrom_info *info = drive->driver_data; | 3296 | struct cdrom_info *info = drive->driver_data; |
3293 | 3297 | ||
3294 | ide_unregister_subdriver(drive, info->driver); | 3298 | ide_proc_unregister_driver(drive, info->driver); |
3295 | 3299 | ||
3296 | del_gendisk(info->disk); | 3300 | del_gendisk(info->disk); |
3297 | 3301 | ||
@@ -3336,8 +3340,6 @@ static ide_proc_entry_t idecd_proc[] = { | |||
3336 | { "capacity", S_IFREG|S_IRUGO, proc_idecd_read_capacity, NULL }, | 3340 | { "capacity", S_IFREG|S_IRUGO, proc_idecd_read_capacity, NULL }, |
3337 | { NULL, 0, NULL, NULL } | 3341 | { NULL, 0, NULL, NULL } |
3338 | }; | 3342 | }; |
3339 | #else | ||
3340 | # define idecd_proc NULL | ||
3341 | #endif | 3343 | #endif |
3342 | 3344 | ||
3343 | static ide_driver_t ide_cdrom_driver = { | 3345 | static ide_driver_t ide_cdrom_driver = { |
@@ -3355,7 +3357,9 @@ static ide_driver_t ide_cdrom_driver = { | |||
3355 | .end_request = ide_end_request, | 3357 | .end_request = ide_end_request, |
3356 | .error = __ide_error, | 3358 | .error = __ide_error, |
3357 | .abort = __ide_abort, | 3359 | .abort = __ide_abort, |
3360 | #ifdef CONFIG_IDE_PROC_FS | ||
3358 | .proc = idecd_proc, | 3361 | .proc = idecd_proc, |
3362 | #endif | ||
3359 | }; | 3363 | }; |
3360 | 3364 | ||
3361 | static int idecd_open(struct inode * inode, struct file * file) | 3365 | static int idecd_open(struct inode * inode, struct file * file) |
@@ -3517,7 +3521,7 @@ static int ide_cd_probe(ide_drive_t *drive) | |||
3517 | 3521 | ||
3518 | ide_init_disk(g, drive); | 3522 | ide_init_disk(g, drive); |
3519 | 3523 | ||
3520 | ide_register_subdriver(drive, &ide_cdrom_driver); | 3524 | ide_proc_register_driver(drive, &ide_cdrom_driver); |
3521 | 3525 | ||
3522 | kref_init(&info->kref); | 3526 | kref_init(&info->kref); |
3523 | 3527 | ||
@@ -3534,7 +3538,7 @@ static int ide_cd_probe(ide_drive_t *drive) | |||
3534 | g->flags = GENHD_FL_CD | GENHD_FL_REMOVABLE; | 3538 | g->flags = GENHD_FL_CD | GENHD_FL_REMOVABLE; |
3535 | if (ide_cdrom_setup(drive)) { | 3539 | if (ide_cdrom_setup(drive)) { |
3536 | struct cdrom_device_info *devinfo = &info->devinfo; | 3540 | struct cdrom_device_info *devinfo = &info->devinfo; |
3537 | ide_unregister_subdriver(drive, &ide_cdrom_driver); | 3541 | ide_proc_unregister_driver(drive, &ide_cdrom_driver); |
3538 | kfree(info->buffer); | 3542 | kfree(info->buffer); |
3539 | kfree(info->toc); | 3543 | kfree(info->toc); |
3540 | kfree(info->changer_info); | 3544 | kfree(info->changer_info); |