hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/include/linux/ide.h
....@@ -10,7 +10,7 @@
1010 #include <linux/init.h>
1111 #include <linux/ioport.h>
1212 #include <linux/ata.h>
13
-#include <linux/blkdev.h>
13
+#include <linux/blk-mq.h>
1414 #include <linux/proc_fs.h>
1515 #include <linux/interrupt.h>
1616 #include <linux/bitops.h>
....@@ -50,6 +50,7 @@
5050 struct scsi_request sreq;
5151 u8 sense[SCSI_SENSE_BUFFERSIZE];
5252 u8 type;
53
+ void *special;
5354 };
5455
5556 static inline struct ide_request *ide_req(struct request *rq)
....@@ -252,9 +253,9 @@
252253 * Special Driver Flags
253254 */
254255 enum {
255
- IDE_SFLAG_SET_GEOMETRY = (1 << 0),
256
- IDE_SFLAG_RECALIBRATE = (1 << 1),
257
- IDE_SFLAG_SET_MULTMODE = (1 << 2),
256
+ IDE_SFLAG_SET_GEOMETRY = BIT(0),
257
+ IDE_SFLAG_RECALIBRATE = BIT(1),
258
+ IDE_SFLAG_SET_MULTMODE = BIT(2),
258259 };
259260
260261 /*
....@@ -266,13 +267,13 @@
266267 } ide_startstop_t;
267268
268269 enum {
269
- IDE_VALID_ERROR = (1 << 1),
270
+ IDE_VALID_ERROR = BIT(1),
270271 IDE_VALID_FEATURE = IDE_VALID_ERROR,
271
- IDE_VALID_NSECT = (1 << 2),
272
- IDE_VALID_LBAL = (1 << 3),
273
- IDE_VALID_LBAM = (1 << 4),
274
- IDE_VALID_LBAH = (1 << 5),
275
- IDE_VALID_DEVICE = (1 << 6),
272
+ IDE_VALID_NSECT = BIT(2),
273
+ IDE_VALID_LBAL = BIT(3),
274
+ IDE_VALID_LBAM = BIT(4),
275
+ IDE_VALID_LBAH = BIT(5),
276
+ IDE_VALID_DEVICE = BIT(6),
276277 IDE_VALID_LBA = IDE_VALID_LBAL |
277278 IDE_VALID_LBAM |
278279 IDE_VALID_LBAH,
....@@ -288,24 +289,24 @@
288289 };
289290
290291 enum {
291
- IDE_TFLAG_LBA48 = (1 << 0),
292
- IDE_TFLAG_WRITE = (1 << 1),
293
- IDE_TFLAG_CUSTOM_HANDLER = (1 << 2),
294
- IDE_TFLAG_DMA_PIO_FALLBACK = (1 << 3),
292
+ IDE_TFLAG_LBA48 = BIT(0),
293
+ IDE_TFLAG_WRITE = BIT(1),
294
+ IDE_TFLAG_CUSTOM_HANDLER = BIT(2),
295
+ IDE_TFLAG_DMA_PIO_FALLBACK = BIT(3),
295296 /* force 16-bit I/O operations */
296
- IDE_TFLAG_IO_16BIT = (1 << 4),
297
+ IDE_TFLAG_IO_16BIT = BIT(4),
297298 /* struct ide_cmd was allocated using kmalloc() */
298
- IDE_TFLAG_DYN = (1 << 5),
299
- IDE_TFLAG_FS = (1 << 6),
300
- IDE_TFLAG_MULTI_PIO = (1 << 7),
301
- IDE_TFLAG_SET_XFER = (1 << 8),
299
+ IDE_TFLAG_DYN = BIT(5),
300
+ IDE_TFLAG_FS = BIT(6),
301
+ IDE_TFLAG_MULTI_PIO = BIT(7),
302
+ IDE_TFLAG_SET_XFER = BIT(8),
302303 };
303304
304305 enum {
305
- IDE_FTFLAG_FLAGGED = (1 << 0),
306
- IDE_FTFLAG_SET_IN_FLAGS = (1 << 1),
307
- IDE_FTFLAG_OUT_DATA = (1 << 2),
308
- IDE_FTFLAG_IN_DATA = (1 << 3),
306
+ IDE_FTFLAG_FLAGGED = BIT(0),
307
+ IDE_FTFLAG_SET_IN_FLAGS = BIT(1),
308
+ IDE_FTFLAG_OUT_DATA = BIT(2),
309
+ IDE_FTFLAG_IN_DATA = BIT(3),
309310 };
310311
311312 struct ide_taskfile {
....@@ -356,13 +357,13 @@
356357 /* ATAPI packet command flags */
357358 enum {
358359 /* set when an error is considered normal - no retry (ide-tape) */
359
- PC_FLAG_ABORT = (1 << 0),
360
- PC_FLAG_SUPPRESS_ERROR = (1 << 1),
361
- PC_FLAG_WAIT_FOR_DSC = (1 << 2),
362
- PC_FLAG_DMA_OK = (1 << 3),
363
- PC_FLAG_DMA_IN_PROGRESS = (1 << 4),
364
- PC_FLAG_DMA_ERROR = (1 << 5),
365
- PC_FLAG_WRITING = (1 << 6),
360
+ PC_FLAG_ABORT = BIT(0),
361
+ PC_FLAG_SUPPRESS_ERROR = BIT(1),
362
+ PC_FLAG_WAIT_FOR_DSC = BIT(2),
363
+ PC_FLAG_DMA_OK = BIT(3),
364
+ PC_FLAG_DMA_IN_PROGRESS = BIT(4),
365
+ PC_FLAG_DMA_ERROR = BIT(5),
366
+ PC_FLAG_WRITING = BIT(6),
366367 };
367368
368369 #define ATAPI_WAIT_PC (60 * HZ)
....@@ -412,115 +413,115 @@
412413 sector_t);
413414 int (*ioctl)(struct ide_drive_s *, struct block_device *,
414415 fmode_t, unsigned int, unsigned long);
416
+ int (*compat_ioctl)(struct ide_drive_s *, struct block_device *,
417
+ fmode_t, unsigned int, unsigned long);
415418 };
416419
417420 /* ATAPI device flags */
418421 enum {
419
- IDE_AFLAG_DRQ_INTERRUPT = (1 << 0),
422
+ IDE_AFLAG_DRQ_INTERRUPT = BIT(0),
420423
421424 /* ide-cd */
422425 /* Drive cannot eject the disc. */
423
- IDE_AFLAG_NO_EJECT = (1 << 1),
426
+ IDE_AFLAG_NO_EJECT = BIT(1),
424427 /* Drive is a pre ATAPI 1.2 drive. */
425
- IDE_AFLAG_PRE_ATAPI12 = (1 << 2),
428
+ IDE_AFLAG_PRE_ATAPI12 = BIT(2),
426429 /* TOC addresses are in BCD. */
427
- IDE_AFLAG_TOCADDR_AS_BCD = (1 << 3),
430
+ IDE_AFLAG_TOCADDR_AS_BCD = BIT(3),
428431 /* TOC track numbers are in BCD. */
429
- IDE_AFLAG_TOCTRACKS_AS_BCD = (1 << 4),
432
+ IDE_AFLAG_TOCTRACKS_AS_BCD = BIT(4),
430433 /* Saved TOC information is current. */
431
- IDE_AFLAG_TOC_VALID = (1 << 6),
434
+ IDE_AFLAG_TOC_VALID = BIT(6),
432435 /* We think that the drive door is locked. */
433
- IDE_AFLAG_DOOR_LOCKED = (1 << 7),
436
+ IDE_AFLAG_DOOR_LOCKED = BIT(7),
434437 /* SET_CD_SPEED command is unsupported. */
435
- IDE_AFLAG_NO_SPEED_SELECT = (1 << 8),
436
- IDE_AFLAG_VERTOS_300_SSD = (1 << 9),
437
- IDE_AFLAG_VERTOS_600_ESD = (1 << 10),
438
- IDE_AFLAG_SANYO_3CD = (1 << 11),
439
- IDE_AFLAG_FULL_CAPS_PAGE = (1 << 12),
440
- IDE_AFLAG_PLAY_AUDIO_OK = (1 << 13),
441
- IDE_AFLAG_LE_SPEED_FIELDS = (1 << 14),
438
+ IDE_AFLAG_NO_SPEED_SELECT = BIT(8),
439
+ IDE_AFLAG_VERTOS_300_SSD = BIT(9),
440
+ IDE_AFLAG_VERTOS_600_ESD = BIT(10),
441
+ IDE_AFLAG_SANYO_3CD = BIT(11),
442
+ IDE_AFLAG_FULL_CAPS_PAGE = BIT(12),
443
+ IDE_AFLAG_PLAY_AUDIO_OK = BIT(13),
444
+ IDE_AFLAG_LE_SPEED_FIELDS = BIT(14),
442445
443446 /* ide-floppy */
444447 /* Avoid commands not supported in Clik drive */
445
- IDE_AFLAG_CLIK_DRIVE = (1 << 15),
448
+ IDE_AFLAG_CLIK_DRIVE = BIT(15),
446449 /* Requires BH algorithm for packets */
447
- IDE_AFLAG_ZIP_DRIVE = (1 << 16),
450
+ IDE_AFLAG_ZIP_DRIVE = BIT(16),
448451 /* Supports format progress report */
449
- IDE_AFLAG_SRFP = (1 << 17),
452
+ IDE_AFLAG_SRFP = BIT(17),
450453
451454 /* ide-tape */
452
- IDE_AFLAG_IGNORE_DSC = (1 << 18),
455
+ IDE_AFLAG_IGNORE_DSC = BIT(18),
453456 /* 0 When the tape position is unknown */
454
- IDE_AFLAG_ADDRESS_VALID = (1 << 19),
457
+ IDE_AFLAG_ADDRESS_VALID = BIT(19),
455458 /* Device already opened */
456
- IDE_AFLAG_BUSY = (1 << 20),
459
+ IDE_AFLAG_BUSY = BIT(20),
457460 /* Attempt to auto-detect the current user block size */
458
- IDE_AFLAG_DETECT_BS = (1 << 21),
461
+ IDE_AFLAG_DETECT_BS = BIT(21),
459462 /* Currently on a filemark */
460
- IDE_AFLAG_FILEMARK = (1 << 22),
463
+ IDE_AFLAG_FILEMARK = BIT(22),
461464 /* 0 = no tape is loaded, so we don't rewind after ejecting */
462
- IDE_AFLAG_MEDIUM_PRESENT = (1 << 23),
465
+ IDE_AFLAG_MEDIUM_PRESENT = BIT(23),
463466
464
- IDE_AFLAG_NO_AUTOCLOSE = (1 << 24),
467
+ IDE_AFLAG_NO_AUTOCLOSE = BIT(24),
465468 };
466469
467470 /* device flags */
468471 enum {
469472 /* restore settings after device reset */
470
- IDE_DFLAG_KEEP_SETTINGS = (1 << 0),
473
+ IDE_DFLAG_KEEP_SETTINGS = BIT(0),
471474 /* device is using DMA for read/write */
472
- IDE_DFLAG_USING_DMA = (1 << 1),
475
+ IDE_DFLAG_USING_DMA = BIT(1),
473476 /* okay to unmask other IRQs */
474
- IDE_DFLAG_UNMASK = (1 << 2),
477
+ IDE_DFLAG_UNMASK = BIT(2),
475478 /* don't attempt flushes */
476
- IDE_DFLAG_NOFLUSH = (1 << 3),
479
+ IDE_DFLAG_NOFLUSH = BIT(3),
477480 /* DSC overlap */
478
- IDE_DFLAG_DSC_OVERLAP = (1 << 4),
481
+ IDE_DFLAG_DSC_OVERLAP = BIT(4),
479482 /* give potential excess bandwidth */
480
- IDE_DFLAG_NICE1 = (1 << 5),
483
+ IDE_DFLAG_NICE1 = BIT(5),
481484 /* device is physically present */
482
- IDE_DFLAG_PRESENT = (1 << 6),
485
+ IDE_DFLAG_PRESENT = BIT(6),
483486 /* disable Host Protected Area */
484
- IDE_DFLAG_NOHPA = (1 << 7),
487
+ IDE_DFLAG_NOHPA = BIT(7),
485488 /* id read from device (synthetic if not set) */
486
- IDE_DFLAG_ID_READ = (1 << 8),
487
- IDE_DFLAG_NOPROBE = (1 << 9),
489
+ IDE_DFLAG_ID_READ = BIT(8),
490
+ IDE_DFLAG_NOPROBE = BIT(9),
488491 /* need to do check_media_change() */
489
- IDE_DFLAG_REMOVABLE = (1 << 10),
490
- /* needed for removable devices */
491
- IDE_DFLAG_ATTACH = (1 << 11),
492
- IDE_DFLAG_FORCED_GEOM = (1 << 12),
492
+ IDE_DFLAG_REMOVABLE = BIT(10),
493
+ IDE_DFLAG_FORCED_GEOM = BIT(12),
493494 /* disallow setting unmask bit */
494
- IDE_DFLAG_NO_UNMASK = (1 << 13),
495
+ IDE_DFLAG_NO_UNMASK = BIT(13),
495496 /* disallow enabling 32-bit I/O */
496
- IDE_DFLAG_NO_IO_32BIT = (1 << 14),
497
+ IDE_DFLAG_NO_IO_32BIT = BIT(14),
497498 /* for removable only: door lock/unlock works */
498
- IDE_DFLAG_DOORLOCKING = (1 << 15),
499
+ IDE_DFLAG_DOORLOCKING = BIT(15),
499500 /* disallow DMA */
500
- IDE_DFLAG_NODMA = (1 << 16),
501
+ IDE_DFLAG_NODMA = BIT(16),
501502 /* powermanagement told us not to do anything, so sleep nicely */
502
- IDE_DFLAG_BLOCKED = (1 << 17),
503
+ IDE_DFLAG_BLOCKED = BIT(17),
503504 /* sleeping & sleep field valid */
504
- IDE_DFLAG_SLEEPING = (1 << 18),
505
- IDE_DFLAG_POST_RESET = (1 << 19),
506
- IDE_DFLAG_UDMA33_WARNED = (1 << 20),
507
- IDE_DFLAG_LBA48 = (1 << 21),
505
+ IDE_DFLAG_SLEEPING = BIT(18),
506
+ IDE_DFLAG_POST_RESET = BIT(19),
507
+ IDE_DFLAG_UDMA33_WARNED = BIT(20),
508
+ IDE_DFLAG_LBA48 = BIT(21),
508509 /* status of write cache */
509
- IDE_DFLAG_WCACHE = (1 << 22),
510
+ IDE_DFLAG_WCACHE = BIT(22),
510511 /* used for ignoring ATA_DF */
511
- IDE_DFLAG_NOWERR = (1 << 23),
512
+ IDE_DFLAG_NOWERR = BIT(23),
512513 /* retrying in PIO */
513
- IDE_DFLAG_DMA_PIO_RETRY = (1 << 24),
514
- IDE_DFLAG_LBA = (1 << 25),
514
+ IDE_DFLAG_DMA_PIO_RETRY = BIT(24),
515
+ IDE_DFLAG_LBA = BIT(25),
515516 /* don't unload heads */
516
- IDE_DFLAG_NO_UNLOAD = (1 << 26),
517
+ IDE_DFLAG_NO_UNLOAD = BIT(26),
517518 /* heads unloaded, please don't reset port */
518
- IDE_DFLAG_PARKED = (1 << 27),
519
- IDE_DFLAG_MEDIA_CHANGED = (1 << 28),
519
+ IDE_DFLAG_PARKED = BIT(27),
520
+ IDE_DFLAG_MEDIA_CHANGED = BIT(28),
520521 /* write protect */
521
- IDE_DFLAG_WP = (1 << 29),
522
- IDE_DFLAG_FORMAT_IN_PROGRESS = (1 << 30),
523
- IDE_DFLAG_NIEN_QUIRK = (1 << 31),
522
+ IDE_DFLAG_WP = BIT(29),
523
+ IDE_DFLAG_FORMAT_IN_PROGRESS = BIT(30),
524
+ IDE_DFLAG_NIEN_QUIRK = BIT(31),
524525 };
525526
526527 struct ide_drive_s {
....@@ -528,6 +529,10 @@
528529 char driver_req[10]; /* requests specific driver */
529530
530531 struct request_queue *queue; /* request queue */
532
+
533
+ bool (*prep_rq)(struct ide_drive_s *, struct request *);
534
+
535
+ struct blk_mq_tag_set tag_set;
531536
532537 struct request *rq; /* current request */
533538 void *driver_data; /* extra driver data */
....@@ -610,8 +615,13 @@
610615
611616 /* current sense rq and buffer */
612617 bool sense_rq_armed;
618
+ bool sense_rq_active;
613619 struct request *sense_rq;
614620 struct request_sense sense_data;
621
+
622
+ /* async sense insertion */
623
+ struct work_struct rq_work;
624
+ struct list_head rq_list;
615625 };
616626
617627 typedef struct ide_drive_s ide_drive_t;
....@@ -699,7 +709,7 @@
699709 };
700710
701711 enum {
702
- IDE_PFLAG_PROBING = (1 << 0),
712
+ IDE_PFLAG_PROBING = BIT(0),
703713 };
704714
705715 struct ide_host;
....@@ -852,7 +862,7 @@
852862 * configurable drive settings
853863 */
854864
855
-#define DS_SYNC (1 << 0)
865
+#define DS_SYNC BIT(0)
856866
857867 struct ide_devset {
858868 int (*get)(ide_drive_t *);
....@@ -933,6 +943,10 @@
933943 ide_devset_set(_name, _field); \
934944 IDE_DEVSET(_name, DS_SYNC, get_##_name, set_##_name)
935945
946
+#define ide_devset_ro_field(_name, _field) \
947
+ide_devset_get(_name, _field); \
948
+IDE_DEVSET(_name, 0, get_##_name, NULL)
949
+
936950 #define ide_devset_rw_flag(_name, _field) \
937951 ide_devset_get_flag(_name, _field); \
938952 ide_devset_set_flag(_name, _field); \
....@@ -990,15 +1004,15 @@
9901004
9911005 enum {
9921006 /* enter/exit functions */
993
- IDE_DBG_FUNC = (1 << 0),
1007
+ IDE_DBG_FUNC = BIT(0),
9941008 /* sense key/asc handling */
995
- IDE_DBG_SENSE = (1 << 1),
1009
+ IDE_DBG_SENSE = BIT(1),
9961010 /* packet commands handling */
997
- IDE_DBG_PC = (1 << 2),
1011
+ IDE_DBG_PC = BIT(2),
9981012 /* request handling */
999
- IDE_DBG_RQ = (1 << 3),
1013
+ IDE_DBG_RQ = BIT(3),
10001014 /* driver probing/setup */
1001
- IDE_DBG_PROBE = (1 << 4),
1015
+ IDE_DBG_PROBE = BIT(4),
10021016 };
10031017
10041018 /* DRV_NAME has to be defined in the driver before using the macro below */
....@@ -1089,6 +1103,7 @@
10891103
10901104 int ide_end_rq(ide_drive_t *, struct request *, blk_status_t, unsigned int);
10911105 void ide_kill_rq(ide_drive_t *, struct request *);
1106
+void ide_insert_request_head(ide_drive_t *, struct request *);
10921107
10931108 void __ide_set_handler(ide_drive_t *, ide_handler_t *, unsigned int);
10941109 void ide_set_handler(ide_drive_t *, ide_handler_t *, unsigned int);
....@@ -1160,10 +1175,10 @@
11601175 * the tail of our block device request queue and wait for their completion.
11611176 */
11621177 enum {
1163
- REQ_IDETAPE_PC1 = (1 << 0), /* packet command (first stage) */
1164
- REQ_IDETAPE_PC2 = (1 << 1), /* packet command (second stage) */
1165
- REQ_IDETAPE_READ = (1 << 2),
1166
- REQ_IDETAPE_WRITE = (1 << 3),
1178
+ REQ_IDETAPE_PC1 = BIT(0), /* packet command (first stage) */
1179
+ REQ_IDETAPE_PC2 = BIT(1), /* packet command (second stage) */
1180
+ REQ_IDETAPE_READ = BIT(2),
1181
+ REQ_IDETAPE_WRITE = BIT(3),
11671182 };
11681183
11691184 int ide_queue_pc_tail(ide_drive_t *, struct gendisk *, struct ide_atapi_pc *,
....@@ -1208,7 +1223,8 @@
12081223
12091224 extern void ide_timer_expiry(struct timer_list *t);
12101225 extern irqreturn_t ide_intr(int irq, void *dev_id);
1211
-extern void do_ide_request(struct request_queue *);
1226
+extern blk_status_t ide_queue_rq(struct blk_mq_hw_ctx *, const struct blk_mq_queue_data *);
1227
+extern blk_status_t ide_issue_rq(ide_drive_t *, struct request *, bool);
12121228 extern void ide_requeue_and_plug(ide_drive_t *drive, struct request *rq);
12131229
12141230 void ide_init_disk(struct gendisk *, ide_drive_t *);
....@@ -1252,71 +1268,71 @@
12521268
12531269 enum {
12541270 /* Uses ISA control ports not PCI ones. */
1255
- IDE_HFLAG_ISA_PORTS = (1 << 0),
1271
+ IDE_HFLAG_ISA_PORTS = BIT(0),
12561272 /* single port device */
1257
- IDE_HFLAG_SINGLE = (1 << 1),
1273
+ IDE_HFLAG_SINGLE = BIT(1),
12581274 /* don't use legacy PIO blacklist */
1259
- IDE_HFLAG_PIO_NO_BLACKLIST = (1 << 2),
1275
+ IDE_HFLAG_PIO_NO_BLACKLIST = BIT(2),
12601276 /* set for the second port of QD65xx */
1261
- IDE_HFLAG_QD_2ND_PORT = (1 << 3),
1277
+ IDE_HFLAG_QD_2ND_PORT = BIT(3),
12621278 /* use PIO8/9 for prefetch off/on */
1263
- IDE_HFLAG_ABUSE_PREFETCH = (1 << 4),
1279
+ IDE_HFLAG_ABUSE_PREFETCH = BIT(4),
12641280 /* use PIO6/7 for fast-devsel off/on */
1265
- IDE_HFLAG_ABUSE_FAST_DEVSEL = (1 << 5),
1281
+ IDE_HFLAG_ABUSE_FAST_DEVSEL = BIT(5),
12661282 /* use 100-102 and 200-202 PIO values to set DMA modes */
1267
- IDE_HFLAG_ABUSE_DMA_MODES = (1 << 6),
1283
+ IDE_HFLAG_ABUSE_DMA_MODES = BIT(6),
12681284 /*
12691285 * keep DMA setting when programming PIO mode, may be used only
12701286 * for hosts which have separate PIO and DMA timings (ie. PMAC)
12711287 */
1272
- IDE_HFLAG_SET_PIO_MODE_KEEP_DMA = (1 << 7),
1288
+ IDE_HFLAG_SET_PIO_MODE_KEEP_DMA = BIT(7),
12731289 /* program host for the transfer mode after programming device */
1274
- IDE_HFLAG_POST_SET_MODE = (1 << 8),
1290
+ IDE_HFLAG_POST_SET_MODE = BIT(8),
12751291 /* don't program host/device for the transfer mode ("smart" hosts) */
1276
- IDE_HFLAG_NO_SET_MODE = (1 << 9),
1292
+ IDE_HFLAG_NO_SET_MODE = BIT(9),
12771293 /* trust BIOS for programming chipset/device for DMA */
1278
- IDE_HFLAG_TRUST_BIOS_FOR_DMA = (1 << 10),
1294
+ IDE_HFLAG_TRUST_BIOS_FOR_DMA = BIT(10),
12791295 /* host is CS5510/CS5520 */
1280
- IDE_HFLAG_CS5520 = (1 << 11),
1296
+ IDE_HFLAG_CS5520 = BIT(11),
12811297 /* ATAPI DMA is unsupported */
1282
- IDE_HFLAG_NO_ATAPI_DMA = (1 << 12),
1298
+ IDE_HFLAG_NO_ATAPI_DMA = BIT(12),
12831299 /* set if host is a "non-bootable" controller */
1284
- IDE_HFLAG_NON_BOOTABLE = (1 << 13),
1300
+ IDE_HFLAG_NON_BOOTABLE = BIT(13),
12851301 /* host doesn't support DMA */
1286
- IDE_HFLAG_NO_DMA = (1 << 14),
1302
+ IDE_HFLAG_NO_DMA = BIT(14),
12871303 /* check if host is PCI IDE device before allowing DMA */
1288
- IDE_HFLAG_NO_AUTODMA = (1 << 15),
1304
+ IDE_HFLAG_NO_AUTODMA = BIT(15),
12891305 /* host uses MMIO */
1290
- IDE_HFLAG_MMIO = (1 << 16),
1306
+ IDE_HFLAG_MMIO = BIT(16),
12911307 /* no LBA48 */
1292
- IDE_HFLAG_NO_LBA48 = (1 << 17),
1308
+ IDE_HFLAG_NO_LBA48 = BIT(17),
12931309 /* no LBA48 DMA */
1294
- IDE_HFLAG_NO_LBA48_DMA = (1 << 18),
1310
+ IDE_HFLAG_NO_LBA48_DMA = BIT(18),
12951311 /* data FIFO is cleared by an error */
1296
- IDE_HFLAG_ERROR_STOPS_FIFO = (1 << 19),
1312
+ IDE_HFLAG_ERROR_STOPS_FIFO = BIT(19),
12971313 /* serialize ports */
1298
- IDE_HFLAG_SERIALIZE = (1 << 20),
1314
+ IDE_HFLAG_SERIALIZE = BIT(20),
12991315 /* host is DTC2278 */
1300
- IDE_HFLAG_DTC2278 = (1 << 21),
1316
+ IDE_HFLAG_DTC2278 = BIT(21),
13011317 /* 4 devices on a single set of I/O ports */
1302
- IDE_HFLAG_4DRIVES = (1 << 22),
1318
+ IDE_HFLAG_4DRIVES = BIT(22),
13031319 /* host is TRM290 */
1304
- IDE_HFLAG_TRM290 = (1 << 23),
1320
+ IDE_HFLAG_TRM290 = BIT(23),
13051321 /* use 32-bit I/O ops */
1306
- IDE_HFLAG_IO_32BIT = (1 << 24),
1322
+ IDE_HFLAG_IO_32BIT = BIT(24),
13071323 /* unmask IRQs */
1308
- IDE_HFLAG_UNMASK_IRQS = (1 << 25),
1309
- IDE_HFLAG_BROKEN_ALTSTATUS = (1 << 26),
1324
+ IDE_HFLAG_UNMASK_IRQS = BIT(25),
1325
+ IDE_HFLAG_BROKEN_ALTSTATUS = BIT(26),
13101326 /* serialize ports if DMA is possible (for sl82c105) */
1311
- IDE_HFLAG_SERIALIZE_DMA = (1 << 27),
1327
+ IDE_HFLAG_SERIALIZE_DMA = BIT(27),
13121328 /* force host out of "simplex" mode */
1313
- IDE_HFLAG_CLEAR_SIMPLEX = (1 << 28),
1329
+ IDE_HFLAG_CLEAR_SIMPLEX = BIT(28),
13141330 /* DSC overlap is unsupported */
1315
- IDE_HFLAG_NO_DSC = (1 << 29),
1331
+ IDE_HFLAG_NO_DSC = BIT(29),
13161332 /* never use 32-bit I/O ops */
1317
- IDE_HFLAG_NO_IO_32BIT = (1 << 30),
1333
+ IDE_HFLAG_NO_IO_32BIT = BIT(30),
13181334 /* never unmask IRQs */
1319
- IDE_HFLAG_NO_UNMASK_IRQS = (1 << 31),
1335
+ IDE_HFLAG_NO_UNMASK_IRQS = BIT(31),
13201336 };
13211337
13221338 #ifdef CONFIG_BLK_DEV_OFFBOARD
....@@ -1524,16 +1540,16 @@
15241540 };
15251541
15261542 enum {
1527
- IDE_TIMING_SETUP = (1 << 0),
1528
- IDE_TIMING_ACT8B = (1 << 1),
1529
- IDE_TIMING_REC8B = (1 << 2),
1530
- IDE_TIMING_CYC8B = (1 << 3),
1543
+ IDE_TIMING_SETUP = BIT(0),
1544
+ IDE_TIMING_ACT8B = BIT(1),
1545
+ IDE_TIMING_REC8B = BIT(2),
1546
+ IDE_TIMING_CYC8B = BIT(3),
15311547 IDE_TIMING_8BIT = IDE_TIMING_ACT8B | IDE_TIMING_REC8B |
15321548 IDE_TIMING_CYC8B,
1533
- IDE_TIMING_ACTIVE = (1 << 4),
1534
- IDE_TIMING_RECOVER = (1 << 5),
1535
- IDE_TIMING_CYCLE = (1 << 6),
1536
- IDE_TIMING_UDMA = (1 << 7),
1549
+ IDE_TIMING_ACTIVE = BIT(4),
1550
+ IDE_TIMING_RECOVER = BIT(5),
1551
+ IDE_TIMING_CYCLE = BIT(6),
1552
+ IDE_TIMING_UDMA = BIT(7),
15371553 IDE_TIMING_ALL = IDE_TIMING_SETUP | IDE_TIMING_8BIT |
15381554 IDE_TIMING_ACTIVE | IDE_TIMING_RECOVER |
15391555 IDE_TIMING_CYCLE | IDE_TIMING_UDMA,