git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 2.0-rc4
[linux-2.6.git]
/
drivers
/
macintosh
/
mediabay.c
diff --git
a/drivers/macintosh/mediabay.c
b/drivers/macintosh/mediabay.c
index
12132c0
..
9f0e47d
100644
(file)
--- a/
drivers/macintosh/mediabay.c
+++ b/
drivers/macintosh/mediabay.c
@@
-45,7
+45,7
@@
#endif
#define MB_FCR32(bay, r) ((bay)->base + ((r) >> 2))
#endif
#define MB_FCR32(bay, r) ((bay)->base + ((r) >> 2))
-#define MB_FCR8(bay, r) (((volatile u8*)((bay)->base)) + (r))
+#define MB_FCR8(bay, r) (((volatile u8
__iomem
*)((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)))
#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 {
};
struct media_bay_info {
-
volatile u32*
base;
+
u32 __iomem *
base;
int content_id;
int state;
int last_value;
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
int sleeping;
struct semaphore lock;
#ifdef CONFIG_BLK_DEV_IDE
-
unsigned long
cd_base;
+
void __iomem *
cd_base;
int cd_index;
int cd_irq;
int cd_retry;
int cd_index;
int cd_irq;
int cd_retry;
@@
-435,6
+435,7
@@
int __pmac check_media_bay(struct device_node *which_bay, int what)
#endif /* CONFIG_BLK_DEV_IDE */
return -ENODEV;
}
#endif /* CONFIG_BLK_DEV_IDE */
return -ENODEV;
}
+EXPORT_SYMBOL(check_media_bay);
int __pmac check_media_bay_by_base(unsigned long base, int what)
{
int __pmac check_media_bay_by_base(unsigned long base, int what)
{
@@
-442,7
+443,7
@@
int __pmac check_media_bay_by_base(unsigned long base, int what)
int i;
for (i=0; i<media_bay_count; i++)
int i;
for (i=0; i<media_bay_count; i++)
- if (media_bays[i].mdev && base == media_bays[i].cd_base) {
+ if (media_bays[i].mdev && base ==
(unsigned long)
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;
if ((what == media_bays[i].content_id) && media_bays[i].state == mb_up)
return 0;
media_bays[i].cd_index = -1;
@@
-467,7
+468,7
@@
int __pmac media_bay_set_ide_infos(struct device_node* which_bay, unsigned long
down(&bay->lock);
down(&bay->lock);
- bay->cd_base = base;
+ bay->cd_base =
(void __iomem *)
base;
bay->cd_irq = irq;
if ((MB_CD != bay->content_id) || bay->state != mb_up) {
bay->cd_irq = irq;
if ((MB_CD != bay->content_id) || bay->state != mb_up) {
@@
-552,7
+553,7
@@
static void __pmac media_bay_step(int i)
break;
case mb_ide_waiting:
break;
case mb_ide_waiting:
- if (bay->cd_base ==
0
) {
+ if (bay->cd_base ==
NULL
) {
bay->timer = 0;
bay->state = mb_up;
MBDBG("mediabay%d: up before IDE init\n", i);
bay->timer = 0;
bay->state = mb_up;
MBDBG("mediabay%d: up before IDE init\n", i);
@@
-650,7
+651,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;
static int __devinit media_bay_attach(struct macio_dev *mdev, const struct of_match *match)
{
struct media_bay_info* bay;
-
volatile u32
*regbase;
+
u32 __iomem
*regbase;
struct device_node *ofnode;
int i;
struct device_node *ofnode;
int i;
@@
-663,7
+664,8
@@
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...)
*/
/* Media bay registers are located at the beginning of the
* mac-io chip, we get the parent address for now (hrm...)
*/
- regbase = (volatile u32 *)ioremap(ofnode->parent->addrs[0].address, 0x100);
+ regbase = (u32 __iomem *)
+ ioremap(ofnode->parent->addrs[0].address, 0x100);
if (regbase == NULL) {
macio_release_resources(mdev);
return -ENOMEM;
if (regbase == NULL) {
macio_release_resources(mdev);
return -ENOMEM;
@@
-686,15
+688,13
@@
static int __devinit media_bay_attach(struct macio_dev *mdev, const struct of_ma
/* Force an immediate detect */
set_mb_power(bay, 0);
/* Force an immediate detect */
set_mb_power(bay, 0);
- set_current_state(TASK_UNINTERRUPTIBLE);
- schedule_timeout(MS_TO_HZ(MB_POWER_DELAY));
+ msleep(MB_POWER_DELAY);
bay->content_id = MB_NO;
bay->last_value = bay->ops->content(bay);
bay->value_count = MS_TO_HZ(MB_STABLE_DELAY);
bay->state = mb_empty;
do {
bay->content_id = MB_NO;
bay->last_value = bay->ops->content(bay);
bay->value_count = MS_TO_HZ(MB_STABLE_DELAY);
bay->state = mb_empty;
do {
- set_current_state(TASK_UNINTERRUPTIBLE);
- schedule_timeout(MS_TO_HZ(MB_POLL_DELAY));
+ msleep(MB_POLL_DELAY);
media_bay_step(i);
} while((bay->state != mb_empty) &&
(bay->state != mb_up));
media_bay_step(i);
} while((bay->state != mb_empty) &&
(bay->state != mb_up));
@@
-714,14
+714,13
@@
static int __pmac media_bay_suspend(struct macio_dev *mdev, u32 state)
{
struct media_bay_info *bay = macio_get_drvdata(mdev);
{
struct media_bay_info *bay = macio_get_drvdata(mdev);
- if (state != mdev->ofdev.dev.power
_state && state >= 2
) {
+ if (state != mdev->ofdev.dev.power
.power_state && state == PM_SUSPEND_MEM
) {
down(&bay->lock);
bay->sleeping = 1;
set_mb_power(bay, 0);
up(&bay->lock);
down(&bay->lock);
bay->sleeping = 1;
set_mb_power(bay, 0);
up(&bay->lock);
- set_current_state(TASK_UNINTERRUPTIBLE);
- schedule_timeout(MS_TO_HZ(MB_POLL_DELAY));
- mdev->ofdev.dev.power_state = state;
+ msleep(MB_POLL_DELAY);
+ mdev->ofdev.dev.power.power_state = state;
}
return 0;
}
}
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);
{
struct media_bay_info *bay = macio_get_drvdata(mdev);
- if (mdev->ofdev.dev.power_state != 0) {
- mdev->ofdev.dev.power_state = 0;
+ if (mdev->ofdev.dev.power
.power
_state != 0) {
+ mdev->ofdev.dev.power
.power
_state = 0;
/* We re-enable the bay using it's previous content
only if it did not change. Note those bozo timings,
/* We re-enable the bay using it's previous content
only if it did not change. Note those bozo timings,
@@
-740,8
+739,7
@@
static int __pmac media_bay_resume(struct macio_dev *mdev)
/* Force MB power to 0 */
down(&bay->lock);
set_mb_power(bay, 0);
/* Force MB power to 0 */
down(&bay->lock);
set_mb_power(bay, 0);
- set_current_state(TASK_UNINTERRUPTIBLE);
- schedule_timeout(MS_TO_HZ(MB_POWER_DELAY));
+ msleep(MB_POWER_DELAY);
if (bay->ops->content(bay) != bay->content_id) {
printk("mediabay%d: content changed during sleep...\n", bay->index);
up(&bay->lock);
if (bay->ops->content(bay) != bay->content_id) {
printk("mediabay%d: content changed during sleep...\n", bay->index);
up(&bay->lock);
@@
-755,8
+753,7
@@
static int __pmac media_bay_resume(struct macio_dev *mdev)
bay->cd_retry = 0;
#endif
do {
bay->cd_retry = 0;
#endif
do {
- set_current_state(TASK_UNINTERRUPTIBLE);
- schedule_timeout(MS_TO_HZ(MB_POLL_DELAY));
+ msleep(MB_POLL_DELAY);
media_bay_step(bay->index);
} while((bay->state != mb_empty) &&
(bay->state != mb_up));
media_bay_step(bay->index);
} while((bay->state != mb_empty) &&
(bay->state != mb_up));