Skip to content

Commit

Permalink
Staging: ipack: Switch to 8MHz operation before reading ID.
Browse files Browse the repository at this point in the history
Reading the ID space at 8 MHz is always supported.  Most carriers will
boot up in 8MHz mode.  Still, play it safe and ensure we are operating at
8Mhz.

Signed-off-by: Jens Taprogge <jens.taprogge@taprogge.org>
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Jens Taprogge authored and Greg Kroah-Hartman committed Sep 11, 2012
1 parent 939c37a commit 07766ab
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions drivers/staging/ipack/ipack.c
Original file line number Diff line number Diff line change
Expand Up @@ -377,6 +377,9 @@ struct ipack_device *ipack_device_register(struct ipack_bus_device *bus,
dev_set_name(&dev->dev,
"ipack-dev.%u.%u", dev->bus_nr, dev->slot);

if (bus->ops->set_clockrate(dev, 8))
dev_warn(&dev->dev, "failed to switch to 8 MHz operation for reading of device ID.\n");

ret = ipack_device_read_id(dev);
if (ret < 0) {
dev_err(&dev->dev, "error reading device id section.\n");
Expand All @@ -385,9 +388,11 @@ struct ipack_device *ipack_device_register(struct ipack_bus_device *bus,
}

/* if the device supports 32 MHz operation, use it. */
ret = bus->ops->set_clockrate(dev, dev->speed_32mhz ? 32 : 8);
if (ret < 0)
dev_err(&dev->dev, "failed to perform set_clock_rate operation.\n");
if (dev->speed_32mhz) {
ret = bus->ops->set_clockrate(dev, 32);
if (ret < 0)
dev_err(&dev->dev, "failed to switch to 32 MHz operation.\n");
}

ret = device_register(&dev->dev);
if (ret < 0) {
Expand Down

0 comments on commit 07766ab

Please sign in to comment.