Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 190157
b: refs/heads/master
c: 4c1f5c8
h: refs/heads/master
i:
  190155: 87b1399
v: v3
  • Loading branch information
Harrison Metzger authored and Greg Kroah-Hartman committed Apr 22, 2010
1 parent 6d8f8f2 commit 690ca5a
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 3 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: cdc04834ce70343aa6f87c5332ec66c35d968967
refs/heads/master: 4c1f5c88aaffacb2831353b6d3c1557be52071a2
15 changes: 13 additions & 2 deletions trunk/drivers/usb/misc/usbsevseg.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ struct usb_sevsegdev {
u16 textlength;

u8 shadow_power; /* for PM */
u8 has_interface_pm;
};

/* sysfs_streq can't replace this completely
Expand All @@ -68,12 +69,16 @@ static void update_display_powered(struct usb_sevsegdev *mydev)
{
int rc;

if (!mydev->shadow_power && mydev->powered) {
if (mydev->powered && !mydev->has_interface_pm) {
rc = usb_autopm_get_interface(mydev->intf);
if (rc < 0)
return;
mydev->has_interface_pm = 1;
}

if (mydev->shadow_power != 1)
return;

rc = usb_control_msg(mydev->udev,
usb_sndctrlpipe(mydev->udev, 0),
0x12,
Expand All @@ -86,8 +91,10 @@ static void update_display_powered(struct usb_sevsegdev *mydev)
if (rc < 0)
dev_dbg(&mydev->udev->dev, "power retval = %d\n", rc);

if (mydev->shadow_power && !mydev->powered)
if (!mydev->powered && mydev->has_interface_pm) {
usb_autopm_put_interface(mydev->intf);
mydev->has_interface_pm = 0;
}
}

static void update_display_mode(struct usb_sevsegdev *mydev)
Expand Down Expand Up @@ -351,6 +358,10 @@ static int sevseg_probe(struct usb_interface *interface,
mydev->intf = interface;
usb_set_intfdata(interface, mydev);

/* PM */
mydev->shadow_power = 1; /* currently active */
mydev->has_interface_pm = 0; /* have not issued autopm_get */

/*set defaults */
mydev->textmode = 0x02; /* ascii mode */
mydev->mode_msb = 0x06; /* 6 characters */
Expand Down

0 comments on commit 690ca5a

Please sign in to comment.