^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * mediabay.h: definitions for using the media bay
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) * on PowerBook 3400 and similar computers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * Copyright (C) 1997 Paul Mackerras.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #ifndef _PPC_MEDIABAY_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #define _PPC_MEDIABAY_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #ifdef __KERNEL__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #define MB_FD 0 /* media bay contains floppy drive (automatic eject ?) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #define MB_FD1 1 /* media bay contains floppy drive (manual eject ?) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #define MB_SOUND 2 /* sound device ? */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #define MB_CD 3 /* media bay contains ATA drive such as CD or ZIP */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #define MB_PCI 5 /* media bay contains a PCI device */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) #define MB_POWER 6 /* media bay contains a Power device (???) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) #define MB_NO 7 /* media bay contains nothing */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) struct macio_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) #ifdef CONFIG_PMAC_MEDIABAY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) /* Check the content type of the bay, returns MB_NO if the bay is still
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) * transitionning
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) extern int check_media_bay(struct macio_dev *bay);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) /* The ATA driver uses the calls below to temporarily hold on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) * media bay callbacks while initializing the interface
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) extern void lock_media_bay(struct macio_dev *bay);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) extern void unlock_media_bay(struct macio_dev *bay);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) static inline int check_media_bay(struct macio_dev *bay)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) return MB_NO;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) static inline void lock_media_bay(struct macio_dev *bay) { }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) static inline void unlock_media_bay(struct macio_dev *bay) { }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) #endif /* __KERNEL__ */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) #endif /* _PPC_MEDIABAY_H */