This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / drivers / macintosh / mediabay.c
index e91c059..07c2be6 100644 (file)
@@ -45,7 +45,7 @@
 #endif
 
 #define MB_FCR32(bay, r)       ((bay)->base + ((r) >> 2))
-#define MB_FCR8(bay, r)                (((volatile u8 __iomem *)((bay)->base)) + (r))
+#define MB_FCR8(bay, r)                (((volatile u8*)((bay)->base)) + (r))
 
 #define MB_IN32(bay,r)         (in_le32(MB_FCR32(bay,r)))
 #define MB_OUT32(bay,r,v)      (out_le32(MB_FCR32(bay,r), (v)))
@@ -67,7 +67,7 @@ struct mb_ops {
 };
 
 struct media_bay_info {
-       u32 __iomem                     *base;
+       volatile u32*                   base;
        int                             content_id;
        int                             state;
        int                             last_value;
@@ -80,7 +80,7 @@ struct media_bay_info {
        int                             sleeping;
        struct semaphore                lock;
 #ifdef CONFIG_BLK_DEV_IDE
-       void __iomem                    *cd_base;
+       unsigned long                   cd_base;
        int                             cd_index;
        ide_hwif_t                      *cd_hwif;
        int                             cd_irq;
@@ -444,7 +444,7 @@ int __pmac check_media_bay_by_base(unsigned long base, int what)
        int     i;
 
        for (i=0; i<media_bay_count; i++)
-               if (media_bays[i].mdev && base == (unsigned long) media_bays[i].cd_base) {
+               if (media_bays[i].mdev && base == media_bays[i].cd_base) {
                        if ((what == media_bays[i].content_id) && media_bays[i].state == mb_up)
                                return 0;
                        media_bays[i].cd_index = -1;
@@ -469,7 +469,7 @@ int __pmac media_bay_set_ide_infos(struct device_node* which_bay, unsigned long
                        
                        down(&bay->lock);
 
-                       bay->cd_base    = (void __iomem *) base;
+                       bay->cd_base    = base;
                        bay->cd_irq     = irq;
 
                        if ((MB_CD != bay->content_id) || bay->state != mb_up) {
@@ -554,7 +554,7 @@ static void __pmac media_bay_step(int i)
                break;
            
        case mb_ide_waiting:
-               if (bay->cd_base == NULL) {
+               if (bay->cd_base == 0) {
                        bay->timer = 0;
                        bay->state = mb_up;
                        MBDBG("mediabay%d: up before IDE init\n", i);
@@ -652,7 +652,7 @@ static int __pmac media_bay_task(void *x)
 static int __devinit media_bay_attach(struct macio_dev *mdev, const struct of_match *match)
 {
        struct media_bay_info* bay;
-       u32 __iomem *regbase;
+       volatile u32 *regbase;
        struct device_node *ofnode;
        int i;
 
@@ -665,8 +665,7 @@ static int __devinit media_bay_attach(struct macio_dev *mdev, const struct of_ma
        /* Media bay registers are located at the beginning of the
          * mac-io chip, we get the parent address for now (hrm...)
          */
-       regbase = (u32 __iomem *)
-               ioremap(ofnode->parent->addrs[0].address, 0x100);
+       regbase = (volatile u32 *)ioremap(ofnode->parent->addrs[0].address, 0x100);
        if (regbase == NULL) {
                macio_release_resources(mdev);
                return -ENOMEM;
@@ -715,13 +714,13 @@ static int __pmac media_bay_suspend(struct macio_dev *mdev, u32 state)
 {
        struct media_bay_info   *bay = macio_get_drvdata(mdev);
 
-       if (state != mdev->ofdev.dev.power.power_state && state == PM_SUSPEND_MEM) {
+       if (state != mdev->ofdev.dev.power_state && state >= 2) {
                down(&bay->lock);
                bay->sleeping = 1;
                set_mb_power(bay, 0);
                up(&bay->lock);
                msleep(MB_POLL_DELAY);
-               mdev->ofdev.dev.power.power_state = state;
+               mdev->ofdev.dev.power_state = state;
        }
        return 0;
 }
@@ -730,8 +729,8 @@ static int __pmac media_bay_resume(struct macio_dev *mdev)
 {
        struct media_bay_info   *bay = macio_get_drvdata(mdev);
 
-       if (mdev->ofdev.dev.power.power_state != 0) {
-               mdev->ofdev.dev.power.power_state = 0;
+       if (mdev->ofdev.dev.power_state != 0) {
+               mdev->ofdev.dev.power_state = 0;
 
                /* We re-enable the bay using it's previous content
                   only if it did not change. Note those bozo timings,