Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* |
| 2 | * mediabay.h: definitions for using the media bay |
| 3 | * on PowerBook 3400 and similar computers. |
| 4 | * |
| 5 | * Copyright (C) 1997 Paul Mackerras. |
| 6 | */ |
| 7 | #ifndef _PPC_MEDIABAY_H |
| 8 | #define _PPC_MEDIABAY_H |
| 9 | |
| 10 | #ifdef __KERNEL__ |
| 11 | |
| 12 | #define MB_FD 0 /* media bay contains floppy drive (automatic eject ?) */ |
| 13 | #define MB_FD1 1 /* media bay contains floppy drive (manual eject ?) */ |
| 14 | #define MB_SOUND 2 /* sound device ? */ |
| 15 | #define MB_CD 3 /* media bay contains ATA drive such as CD or ZIP */ |
| 16 | #define MB_PCI 5 /* media bay contains a PCI device */ |
| 17 | #define MB_POWER 6 /* media bay contains a Power device (???) */ |
| 18 | #define MB_NO 7 /* media bay contains nothing */ |
| 19 | |
Benjamin Herrenschmidt | d58b0c3 | 2009-12-01 14:36:28 +0000 | [diff] [blame] | 20 | struct macio_dev; |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 21 | |
Benjamin Herrenschmidt | d58b0c3 | 2009-12-01 14:36:28 +0000 | [diff] [blame] | 22 | #ifdef CONFIG_PMAC_MEDIABAY |
Bartlomiej Zolnierkiewicz | 2dde786 | 2008-04-18 00:46:23 +0200 | [diff] [blame] | 23 | |
Benjamin Herrenschmidt | d58b0c3 | 2009-12-01 14:36:28 +0000 | [diff] [blame] | 24 | /* Check the content type of the bay, returns MB_NO if the bay is still |
| 25 | * transitionning |
| 26 | */ |
| 27 | extern int check_media_bay(struct macio_dev *bay); |
Adrian Bunk | 305c736 | 2008-06-11 03:47:45 +1000 | [diff] [blame] | 28 | |
Benjamin Herrenschmidt | d58b0c3 | 2009-12-01 14:36:28 +0000 | [diff] [blame] | 29 | /* The ATA driver uses the calls below to temporarily hold on the |
| 30 | * media bay callbacks while initializing the interface |
| 31 | */ |
| 32 | extern void lock_media_bay(struct macio_dev *bay); |
| 33 | extern void unlock_media_bay(struct macio_dev *bay); |
Adrian Bunk | 305c736 | 2008-06-11 03:47:45 +1000 | [diff] [blame] | 34 | |
| 35 | #else |
| 36 | |
Benjamin Herrenschmidt | d58b0c3 | 2009-12-01 14:36:28 +0000 | [diff] [blame] | 37 | static inline int check_media_bay(struct macio_dev *bay) |
Adrian Bunk | 305c736 | 2008-06-11 03:47:45 +1000 | [diff] [blame] | 38 | { |
Benjamin Herrenschmidt | d58b0c3 | 2009-12-01 14:36:28 +0000 | [diff] [blame] | 39 | return MB_NO; |
Adrian Bunk | 305c736 | 2008-06-11 03:47:45 +1000 | [diff] [blame] | 40 | } |
| 41 | |
Benjamin Herrenschmidt | d58b0c3 | 2009-12-01 14:36:28 +0000 | [diff] [blame] | 42 | static inline void lock_media_bay(struct macio_dev *bay) { } |
| 43 | static inline void unlock_media_bay(struct macio_dev *bay) { } |
| 44 | |
Bartlomiej Zolnierkiewicz | 2dde786 | 2008-04-18 00:46:23 +0200 | [diff] [blame] | 45 | #endif |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 46 | |
| 47 | #endif /* __KERNEL__ */ |
| 48 | #endif /* _PPC_MEDIABAY_H */ |