]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/macio: Rework hotplug media bay support
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 1 Dec 2009 14:36:28 +0000 (14:36 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 9 Dec 2009 06:09:14 +0000 (17:09 +1100)
commit97d4156e1d01d4686c74f809eb345c6577e1e799
treea4a9011c229c5d8d7b953dd5e1b0b70fa28d0a37
parenta95054f4cc1d24909c2dafd90781a58f5370fac9
powerpc/macio: Rework hotplug media bay support

The hotplug mediabay has tendrils deep into drivers/ide code
which makes a libata port reather difficult. In addition it's
ugly and could be done better.

This reworks the interface between the mediabay and the rest
of the world so that:

   - Any macio_driver can now have a mediabay_event callback
which will be called when that driver sits on a mediabay and
it's been either plugged or unplugged. The device type is
passed as an argument. We can now move all the IDE cruft
into the IDE driver itself

   - A check_media_bay() function can be used to take a peek
at the type of device currently in the bay if any, a cleaner
variant of the previous function with the same name.

   - A pair of lock/unlock functions are exposed to allow the
IDE driver to block the hotplug callbacks during the initial
setup and probing of the bay in order to avoid nasty race
conditions.

   - The mediabay code no longer needs to spin on the status
register of the IDE interface when it detects an IDE device,
this is done just fine by the IDE code itself

Overall, less code, simpler, and allows for another driver
than our old drivers/ide based one.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/include/asm/macio.h
arch/powerpc/include/asm/mediabay.h
drivers/block/swim3.c
drivers/ide/pmac.c
drivers/macintosh/mediabay.c