|
@@ -1695,15 +1695,6 @@ int ide_cdrom_probe_capabilities(ide_drive_t *drive)
|
|
|
return nslots;
|
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_IDE_PROC_FS
|
|
|
-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) { ; }
|
|
|
-#endif
|
|
|
-
|
|
|
/*
|
|
|
* standard prep_rq_fn that builds 10 byte cmds
|
|
|
*/
|
|
@@ -1789,6 +1780,41 @@ struct cd_list_entry {
|
|
|
unsigned int cd_flags;
|
|
|
};
|
|
|
|
|
|
+#ifdef CONFIG_IDE_PROC_FS
|
|
|
+static sector_t ide_cdrom_capacity(ide_drive_t *drive)
|
|
|
+{
|
|
|
+ unsigned long capacity, sectors_per_frame;
|
|
|
+
|
|
|
+ if (cdrom_read_capacity(drive, &capacity, §ors_per_frame, NULL))
|
|
|
+ return 0;
|
|
|
+
|
|
|
+ return capacity * sectors_per_frame;
|
|
|
+}
|
|
|
+
|
|
|
+static int proc_idecd_read_capacity
|
|
|
+ (char *page, char **start, off_t off, int count, int *eof, void *data)
|
|
|
+{
|
|
|
+ ide_drive_t *drive = data;
|
|
|
+ int len;
|
|
|
+
|
|
|
+ len = sprintf(page, "%llu\n", (long long)ide_cdrom_capacity(drive));
|
|
|
+ PROC_IDE_READ_RETURN(page, start, off, count, eof, len);
|
|
|
+}
|
|
|
+
|
|
|
+static ide_proc_entry_t idecd_proc[] = {
|
|
|
+ { "capacity", S_IFREG|S_IRUGO, proc_idecd_read_capacity, NULL },
|
|
|
+ { 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) { ; }
|
|
|
+#endif
|
|
|
+
|
|
|
static const struct cd_list_entry ide_cd_quirks_list[] = {
|
|
|
/* Limit transfer size per interrupt. */
|
|
|
{ "SAMSUNG CD-ROM SCR-2430", NULL, IDE_CD_FLAG_LIMIT_NFRAMES },
|
|
@@ -1929,33 +1955,6 @@ static void ide_cd_release(struct kref *kref)
|
|
|
|
|
|
static int ide_cd_probe(ide_drive_t *);
|
|
|
|
|
|
-#ifdef CONFIG_IDE_PROC_FS
|
|
|
-static sector_t ide_cdrom_capacity(ide_drive_t *drive)
|
|
|
-{
|
|
|
- unsigned long capacity, sectors_per_frame;
|
|
|
-
|
|
|
- if (cdrom_read_capacity(drive, &capacity, §ors_per_frame, NULL))
|
|
|
- return 0;
|
|
|
-
|
|
|
- return capacity * sectors_per_frame;
|
|
|
-}
|
|
|
-
|
|
|
-static int proc_idecd_read_capacity
|
|
|
- (char *page, char **start, off_t off, int count, int *eof, void *data)
|
|
|
-{
|
|
|
- ide_drive_t *drive = data;
|
|
|
- int len;
|
|
|
-
|
|
|
- len = sprintf(page, "%llu\n", (long long)ide_cdrom_capacity(drive));
|
|
|
- PROC_IDE_READ_RETURN(page, start, off, count, eof, len);
|
|
|
-}
|
|
|
-
|
|
|
-static ide_proc_entry_t idecd_proc[] = {
|
|
|
- { "capacity", S_IFREG|S_IRUGO, proc_idecd_read_capacity, NULL },
|
|
|
- { NULL, 0, NULL, NULL }
|
|
|
-};
|
|
|
-#endif
|
|
|
-
|
|
|
static ide_driver_t ide_cdrom_driver = {
|
|
|
.gen_driver = {
|
|
|
.owner = THIS_MODULE,
|