diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-10-10 16:39:28 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-10-10 16:39:28 -0400 |
commit | 8185d5aa93e0a5c111adc4952a5b87193a68ae5b (patch) | |
tree | 431aeb09a448b7b07a353e12f4fe931ebb8555cd /drivers/ide/ide-cd.c | |
parent | 263138a0ad6e38de7f6526b7de037ed4511308ef (diff) |
ide: /proc/ide/hd*/settings rework
* Add struct ide_devset, S_* flags, *DEVSET() & ide*_devset_*() macros.
* Add 'const struct ide_devset **settings' to ide_driver_t.
* Use 'const struct ide_devset **settings' in ide_drive_t instead of
'struct ide_settings_s *settings'. Then convert core code and device
drivers to use struct ide_devset and co.:
- device settings are no longer allocated dynamically for each device
but instead there is an unique struct ide_devset instance per setting
- device driver keeps the pointer to the table of pointers to its
settings in ide_driver_t.settings
- generic settings are kept in ide_generic_setting[]
- ide_proc_[un]register_driver(), ide_find_setting_by_name(),
ide_{read,write}_setting() and proc_ide_{read,write}_settings()
are updated accordingly
- ide*_add_settings() are removed
* Remove no longer used __ide_add_setting(), ide_add_setting(),
__ide_remove_setting() and auto_remove_settings().
* Remove no longer used TYPE_*, SETTING_*, ide_procset_t
and ide_settings_t.
* ->keep_settings, ->using_dma, ->unmask, ->noflush, ->dsc_overlap,
->nice1, ->addressing, ->wcache and ->nowerr ide_drive_t fields
can now be bitfield flags.
While at it:
* Rename ide_find_setting_by_name() to ide_find_setting().
* Rename write_wcache() to set_wcache().
There should be no functional changes caused by this patch.
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/ide-cd.c')
-rw-r--r-- | drivers/ide/ide-cd.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c index 34a1aeaa15dd..1f5652326489 100644 --- a/drivers/ide/ide-cd.c +++ b/drivers/ide/ide-cd.c | |||
@@ -1809,13 +1809,12 @@ static ide_proc_entry_t idecd_proc[] = { | |||
1809 | { NULL, 0, NULL, NULL } | 1809 | { NULL, 0, NULL, NULL } |
1810 | }; | 1810 | }; |
1811 | 1811 | ||
1812 | static void ide_cdrom_add_settings(ide_drive_t *drive) | 1812 | ide_devset_rw(dsc_overlap, 0, 1, dsc_overlap); |
1813 | { | 1813 | |
1814 | ide_add_setting(drive, "dsc_overlap", SETTING_RW, TYPE_BYTE, 0, 1, 1, 1, | 1814 | static const struct ide_devset *idecd_settings[] = { |
1815 | &drive->dsc_overlap, NULL); | 1815 | &ide_devset_dsc_overlap, |
1816 | } | 1816 | NULL |
1817 | #else | 1817 | }; |
1818 | static inline void ide_cdrom_add_settings(ide_drive_t *drive) { ; } | ||
1819 | #endif | 1818 | #endif |
1820 | 1819 | ||
1821 | static const struct cd_list_entry ide_cd_quirks_list[] = { | 1820 | static const struct cd_list_entry ide_cd_quirks_list[] = { |
@@ -1926,7 +1925,6 @@ static int ide_cdrom_setup(ide_drive_t *drive) | |||
1926 | } | 1925 | } |
1927 | 1926 | ||
1928 | ide_proc_register_driver(drive, cd->driver); | 1927 | ide_proc_register_driver(drive, cd->driver); |
1929 | ide_cdrom_add_settings(drive); | ||
1930 | return 0; | 1928 | return 0; |
1931 | } | 1929 | } |
1932 | 1930 | ||
@@ -1977,6 +1975,7 @@ static ide_driver_t ide_cdrom_driver = { | |||
1977 | .error = __ide_error, | 1975 | .error = __ide_error, |
1978 | #ifdef CONFIG_IDE_PROC_FS | 1976 | #ifdef CONFIG_IDE_PROC_FS |
1979 | .proc = idecd_proc, | 1977 | .proc = idecd_proc, |
1978 | .settings = idecd_settings, | ||
1980 | #endif | 1979 | #endif |
1981 | }; | 1980 | }; |
1982 | 1981 | ||