diff options
| -rw-r--r-- | drivers/ide/Makefile | 4 | ||||
| -rw-r--r-- | drivers/ide/ide-floppy.c | 41 | ||||
| -rw-r--r-- | drivers/ide/ide-floppy.h | 7 | ||||
| -rw-r--r-- | drivers/ide/ide-floppy_proc.c | 33 | 
4 files changed, 48 insertions, 37 deletions
diff --git a/drivers/ide/Makefile b/drivers/ide/Makefile index f408983f89f..06e7867052d 100644 --- a/drivers/ide/Makefile +++ b/drivers/ide/Makefile @@ -39,6 +39,10 @@ obj-$(CONFIG_BLK_DEV_IDEPNP)		+= ide-pnp.o  ide-cd_mod-y += ide-cd.o ide-cd_ioctl.o ide-cd_verbose.o  ide-floppy_mod-y += ide-floppy.o ide-floppy_ioctl.o +ifeq ($(CONFIG_IDE_PROC_FS), y) +	ide-floppy_mod-y += ide-floppy_proc.o +endif +  obj-$(CONFIG_BLK_DEV_IDEDISK)		+= ide-disk.o  obj-$(CONFIG_BLK_DEV_IDECD)		+= ide-cd_mod.o  obj-$(CONFIG_BLK_DEV_IDEFLOPPY)		+= ide-floppy_mod.o diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c index 169d4d93a6a..cf0aa25470e 100644 --- a/drivers/ide/ide-floppy.c +++ b/drivers/ide/ide-floppy.c @@ -552,7 +552,7 @@ static int ide_floppy_get_capacity(ide_drive_t *drive)  	return rc;  } -static sector_t idefloppy_capacity(ide_drive_t *drive) +sector_t ide_floppy_capacity(ide_drive_t *drive)  {  	idefloppy_floppy_t *floppy = drive->driver_data;  	unsigned long capacity = floppy->blocks * floppy->bs_factor; @@ -560,21 +560,6 @@ static sector_t idefloppy_capacity(ide_drive_t *drive)  	return capacity;  } -#ifdef CONFIG_IDE_PROC_FS -ide_devset_rw_field(bios_cyl, bios_cyl); -ide_devset_rw_field(bios_head, bios_head); -ide_devset_rw_field(bios_sect, bios_sect); -ide_devset_rw_field(ticks, pc_delay); - -static const struct ide_proc_devset idefloppy_settings[] = { -	IDE_PROC_DEVSET(bios_cyl,  0, 1023), -	IDE_PROC_DEVSET(bios_head, 0,  255), -	IDE_PROC_DEVSET(bios_sect, 0,   63), -	IDE_PROC_DEVSET(ticks,	   0,  255), -	{ 0 }, -}; -#endif -  static void idefloppy_setup(ide_drive_t *drive, idefloppy_floppy_t *floppy)  {  	u16 *id = drive->id; @@ -639,24 +624,6 @@ static void idefloppy_cleanup_obj(struct kref *kref)  	kfree(floppy);  } -#ifdef CONFIG_IDE_PROC_FS -static int proc_idefloppy_read_capacity(char *page, char **start, off_t off, -		int count, int *eof, void *data) -{ -	ide_drive_t*drive = (ide_drive_t *)data; -	int len; - -	len = sprintf(page, "%llu\n", (long long)idefloppy_capacity(drive)); -	PROC_IDE_READ_RETURN(page, start, off, count, eof, len); -} - -static ide_proc_entry_t idefloppy_proc[] = { -	{ "capacity",	S_IFREG|S_IRUGO, proc_idefloppy_read_capacity,	NULL }, -	{ "geometry",	S_IFREG|S_IRUGO, proc_ide_read_geometry,	NULL }, -	{ NULL, 0, NULL, NULL } -}; -#endif	/* CONFIG_IDE_PROC_FS */ -  static int ide_floppy_probe(ide_drive_t *);  static ide_driver_t idefloppy_driver = { @@ -672,8 +639,8 @@ static ide_driver_t idefloppy_driver = {  	.end_request		= idefloppy_end_request,  	.error			= __ide_error,  #ifdef CONFIG_IDE_PROC_FS -	.proc			= idefloppy_proc, -	.settings		= idefloppy_settings, +	.proc			= ide_floppy_proc, +	.settings		= ide_floppy_settings,  #endif  }; @@ -784,7 +751,7 @@ static int idefloppy_media_changed(struct gendisk *disk)  static int idefloppy_revalidate_disk(struct gendisk *disk)  {  	struct ide_floppy_obj *floppy = ide_drv_g(disk, ide_floppy_obj); -	set_capacity(disk, idefloppy_capacity(floppy->drive)); +	set_capacity(disk, ide_floppy_capacity(floppy->drive));  	return 0;  } diff --git a/drivers/ide/ide-floppy.h b/drivers/ide/ide-floppy.h index 914e4b2f855..17cf865e583 100644 --- a/drivers/ide/ide-floppy.h +++ b/drivers/ide/ide-floppy.h @@ -48,8 +48,15 @@ typedef struct ide_floppy_obj {  /* ide-floppy.c */  void ide_floppy_create_mode_sense_cmd(struct ide_atapi_pc *, u8);  void ide_floppy_create_read_capacity_cmd(struct ide_atapi_pc *); +sector_t ide_floppy_capacity(ide_drive_t *);  /* ide-floppy_ioctl.c */  int ide_floppy_ioctl(struct inode *, struct file *, unsigned, unsigned long); +#ifdef CONFIG_IDE_PROC_FS +/* ide-floppy_proc.c */ +extern ide_proc_entry_t ide_floppy_proc[]; +extern const struct ide_proc_devset ide_floppy_settings[]; +#endif +  #endif /*__IDE_FLOPPY_H */ diff --git a/drivers/ide/ide-floppy_proc.c b/drivers/ide/ide-floppy_proc.c new file mode 100644 index 00000000000..76f0c6c4eca --- /dev/null +++ b/drivers/ide/ide-floppy_proc.c @@ -0,0 +1,33 @@ +#include <linux/kernel.h> +#include <linux/ide.h> + +#include "ide-floppy.h" + +static int proc_idefloppy_read_capacity(char *page, char **start, off_t off, +		int count, int *eof, void *data) +{ +	ide_drive_t*drive = (ide_drive_t *)data; +	int len; + +	len = sprintf(page, "%llu\n", (long long)ide_floppy_capacity(drive)); +	PROC_IDE_READ_RETURN(page, start, off, count, eof, len); +} + +ide_proc_entry_t ide_floppy_proc[] = { +	{ "capacity",	S_IFREG|S_IRUGO, proc_idefloppy_read_capacity,	NULL }, +	{ "geometry",	S_IFREG|S_IRUGO, proc_ide_read_geometry,	NULL }, +	{ NULL, 0, NULL, NULL } +}; + +ide_devset_rw_field(bios_cyl, bios_cyl); +ide_devset_rw_field(bios_head, bios_head); +ide_devset_rw_field(bios_sect, bios_sect); +ide_devset_rw_field(ticks, pc_delay); + +const struct ide_proc_devset ide_floppy_settings[] = { +	IDE_PROC_DEVSET(bios_cyl,  0, 1023), +	IDE_PROC_DEVSET(bios_head, 0,  255), +	IDE_PROC_DEVSET(bios_sect, 0,   63), +	IDE_PROC_DEVSET(ticks,	   0,  255), +	{ 0 }, +};  |