Lines Matching refs:swd

195 	struct swim_priv *swd;  member
428 struct swim __iomem *base = fs->swd->base; in swim_track()
445 struct swim __iomem *base = fs->swd->base; in floppy_eject()
461 struct swim __iomem *base = fs->swd->base; in swim_read_sector()
498 struct swim __iomem *base = fs->swd->base; in floppy_read_sectors()
530 struct swim_priv *swd = fs->swd; in swim_queue_rq() local
534 if (!spin_trylock_irq(&swd->lock)) in swim_queue_rq()
553 spin_unlock_irq(&swd->lock); in swim_queue_rq()
585 struct swim __iomem *base = fs->swd->base; in setup_medium()
614 struct swim __iomem *base = fs->swd->base; in floppy_open()
676 struct swim __iomem *base = fs->swd->base; in floppy_release()
750 static int swim_add_floppy(struct swim_priv *swd, enum drive_location location) in swim_add_floppy() argument
752 struct floppy_state *fs = &swd->unit[swd->floppy_count]; in swim_add_floppy()
753 struct swim __iomem *base = swd->base; in swim_add_floppy()
767 swd->floppy_count++; in swim_add_floppy()
790 static int swim_floppy_init(struct swim_priv *swd) in swim_floppy_init() argument
794 struct swim __iomem *base = swd->base; in swim_floppy_init()
801 swim_add_floppy(swd, INTERNAL_DRIVE); in swim_floppy_init()
805 swim_add_floppy(swd, EXTERNAL_DRIVE); in swim_floppy_init()
816 spin_lock_init(&swd->lock); in swim_floppy_init()
818 for (drive = 0; drive < swd->floppy_count; drive++) { in swim_floppy_init()
819 err = blk_mq_alloc_sq_tag_set(&swd->unit[drive].tag_set, in swim_floppy_init()
824 swd->unit[drive].disk = in swim_floppy_init()
825 blk_mq_alloc_disk(&swd->unit[drive].tag_set, in swim_floppy_init()
826 &swd->unit[drive]); in swim_floppy_init()
827 if (IS_ERR(swd->unit[drive].disk)) { in swim_floppy_init()
828 blk_mq_free_tag_set(&swd->unit[drive].tag_set); in swim_floppy_init()
829 err = PTR_ERR(swd->unit[drive].disk); in swim_floppy_init()
833 swd->unit[drive].swd = swd; in swim_floppy_init()
836 for (drive = 0; drive < swd->floppy_count; drive++) { in swim_floppy_init()
837 swd->unit[drive].disk->flags = GENHD_FL_REMOVABLE; in swim_floppy_init()
838 swd->unit[drive].disk->major = FLOPPY_MAJOR; in swim_floppy_init()
839 swd->unit[drive].disk->first_minor = drive; in swim_floppy_init()
840 swd->unit[drive].disk->minors = 1; in swim_floppy_init()
841 sprintf(swd->unit[drive].disk->disk_name, "fd%d", drive); in swim_floppy_init()
842 swd->unit[drive].disk->fops = &floppy_fops; in swim_floppy_init()
843 swd->unit[drive].disk->flags |= GENHD_FL_NO_PART; in swim_floppy_init()
844 swd->unit[drive].disk->events = DISK_EVENT_MEDIA_CHANGE; in swim_floppy_init()
845 swd->unit[drive].disk->private_data = &swd->unit[drive]; in swim_floppy_init()
846 set_capacity(swd->unit[drive].disk, 2880); in swim_floppy_init()
847 err = add_disk(swd->unit[drive].disk); in swim_floppy_init()
850 swd->unit[drive].registered = true; in swim_floppy_init()
858 swim_cleanup_floppy_disk(&swd->unit[drive]); in swim_floppy_init()
867 struct swim_priv *swd; in swim_probe() local
898 swd = kzalloc(sizeof(struct swim_priv), GFP_KERNEL); in swim_probe()
899 if (!swd) { in swim_probe()
903 platform_set_drvdata(dev, swd); in swim_probe()
905 swd->base = swim_base; in swim_probe()
907 ret = swim_floppy_init(swd); in swim_probe()
914 kfree(swd); in swim_probe()
923 struct swim_priv *swd = platform_get_drvdata(dev); in swim_remove() local
927 for (drive = 0; drive < swd->floppy_count; drive++) in swim_remove()
928 swim_cleanup_floppy_disk(&swd->unit[drive]); in swim_remove()
934 for (drive = 0; drive < swd->floppy_count; drive++) in swim_remove()
935 floppy_eject(&swd->unit[drive]); in swim_remove()
941 kfree(swd); in swim_remove()