Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 55039
b: refs/heads/master
c: f596575
h: refs/heads/master
i:
  55037: 70e778e
  55035: cc83e97
  55031: b241d07
  55023: 505a66a
  55007: 0fd4029
  54975: b1416d7
  54911: 938cea0
  54783: 0f9f331
v: v3
  • Loading branch information
Johannes Berg authored and Paul Mackerras committed May 8, 2007
1 parent 85eadbc commit f0a1b3f
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 34 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0108d3fe3c44f01de224f39347b95f6a94181687
refs/heads/master: f596575e81999c0faf01a2fd340bc96dda058f80
35 changes: 3 additions & 32 deletions trunk/drivers/macintosh/via-pmu-led.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ static spinlock_t pmu_blink_lock;
static struct adb_request pmu_blink_req;
/* -1: no change, 0: request off, 1: request on */
static int requested_change;
static int sleeping;

static void pmu_req_done(struct adb_request * req)
{
Expand All @@ -41,7 +40,7 @@ static void pmu_req_done(struct adb_request * req)
/* if someone requested a change in the meantime
* (we only see the last one which is fine)
* then apply it now */
if (requested_change != -1 && !sleeping)
if (requested_change != -1 && !pmu_sys_suspended)
pmu_request(&pmu_blink_req, NULL, 4, 0xee, 4, 0, requested_change);
/* reset requested change */
requested_change = -1;
Expand All @@ -66,7 +65,7 @@ static void pmu_led_set(struct led_classdev *led_cdev,
break;
}
/* if request isn't done, then don't do anything */
if (pmu_blink_req.complete && !sleeping)
if (pmu_blink_req.complete && !pmu_sys_suspended)
pmu_request(&pmu_blink_req, NULL, 4, 0xee, 4, 0, requested_change);
out:
spin_unlock_irqrestore(&pmu_blink_lock, flags);
Expand All @@ -80,32 +79,6 @@ static struct led_classdev pmu_led = {
.brightness_set = pmu_led_set,
};

#ifdef CONFIG_PM
static void pmu_led_sleep_call(struct pmu_sleep_notifier *self, int when)
{
unsigned long flags;

spin_lock_irqsave(&pmu_blink_lock, flags);

switch (when) {
case PBOOK_SLEEP_REQUEST:
sleeping = 1;
break;
case PBOOK_WAKE:
sleeping = 0;
break;
default:
/* do nothing */
break;
}
spin_unlock_irqrestore(&pmu_blink_lock, flags);
}

static struct pmu_sleep_notifier via_pmu_led_sleep_notif = {
.notifier_call = pmu_led_sleep_call,
};
#endif

static int __init via_pmu_led_init(void)
{
struct device_node *dt;
Expand Down Expand Up @@ -135,9 +108,7 @@ static int __init via_pmu_led_init(void)
/* no outstanding req */
pmu_blink_req.complete = 1;
pmu_blink_req.done = pmu_req_done;
#ifdef CONFIG_PM
pmu_register_sleep_notifier(&via_pmu_led_sleep_notif);
#endif

return led_classdev_register(NULL, &pmu_led);
}

Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/macintosh/via-pmu.c
Original file line number Diff line number Diff line change
Expand Up @@ -2759,7 +2759,7 @@ pmu_polled_request(struct adb_request *req)

#if defined(CONFIG_PM) && defined(CONFIG_PPC32)

static int pmu_sys_suspended;
int pmu_sys_suspended;

static int pmu_sys_suspend(struct sys_device *sysdev, pm_message_t state)
{
Expand Down
8 changes: 8 additions & 0 deletions trunk/include/linux/pmu.h
Original file line number Diff line number Diff line change
Expand Up @@ -225,4 +225,12 @@ extern unsigned int pmu_power_flags;
/* Backlight */
extern void pmu_backlight_init(void);

/* some code needs to know if the PMU was suspended for hibernation */
#ifdef CONFIG_PM
extern int pmu_sys_suspended;
#else
/* if power management is not configured it can't be suspended */
#define pmu_sys_suspended 0
#endif

#endif /* __KERNEL__ */

0 comments on commit f0a1b3f

Please sign in to comment.