You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
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>
This commit is contained in:
@@ -1809,13 +1809,12 @@ static ide_proc_entry_t idecd_proc[] = {
|
||||
{ NULL, 0, NULL, NULL }
|
||||
};
|
||||
|
||||
static void ide_cdrom_add_settings(ide_drive_t *drive)
|
||||
{
|
||||
ide_add_setting(drive, "dsc_overlap", SETTING_RW, TYPE_BYTE, 0, 1, 1, 1,
|
||||
&drive->dsc_overlap, NULL);
|
||||
}
|
||||
#else
|
||||
static inline void ide_cdrom_add_settings(ide_drive_t *drive) { ; }
|
||||
ide_devset_rw(dsc_overlap, 0, 1, dsc_overlap);
|
||||
|
||||
static const struct ide_devset *idecd_settings[] = {
|
||||
&ide_devset_dsc_overlap,
|
||||
NULL
|
||||
};
|
||||
#endif
|
||||
|
||||
static const struct cd_list_entry ide_cd_quirks_list[] = {
|
||||
@@ -1926,7 +1925,6 @@ static int ide_cdrom_setup(ide_drive_t *drive)
|
||||
}
|
||||
|
||||
ide_proc_register_driver(drive, cd->driver);
|
||||
ide_cdrom_add_settings(drive);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1977,6 +1975,7 @@ static ide_driver_t ide_cdrom_driver = {
|
||||
.error = __ide_error,
|
||||
#ifdef CONFIG_IDE_PROC_FS
|
||||
.proc = idecd_proc,
|
||||
.settings = idecd_settings,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user