diff options
author | Patrick Georgi <patrick.georgi@secunet.com> | 2011-11-18 14:44:16 +0100 |
---|---|---|
committer | Patrick Georgi <patrick@georgi-clan.de> | 2011-12-24 12:05:36 +0100 |
commit | f42fdabe651ab327a5c76d672781d60bd9124e94 (patch) | |
tree | 7c19c378bc5d811eb9ded4790bbc4467bd86dd11 /payloads/libpayload/drivers/usb/uhci_rh.c | |
parent | 44bf6fcbb2ca9cca24038b29afb695db41a629f0 (diff) |
libpayload: remove uhci_reg_maskX
Not that good an idea to start with.
Coccinelle patch:
@@
@@
-void
(
-uhci_reg_mask8
|
-uhci_reg_mask16
|
-uhci_reg_mask32
)
- (...) { ... }
@@
@@
-void
(
-uhci_reg_mask8
|
-uhci_reg_mask16
|
-uhci_reg_mask32
)
- (...);
@@
expression ctrl, reg, ormask;
@@
-uhci_reg_mask32 (ctrl, reg, ~0, ormask)
+uhci_reg_write32 (ctrl, reg, uhci_reg_read32 (ctrl, reg) | ormask)
@@
expression ctrl, reg, ormask;
@@
-uhci_reg_mask16 (ctrl, reg, ~0, ormask)
+uhci_reg_write16 (ctrl, reg, uhci_reg_read16 (ctrl, reg) | ormask)
@@
expression ctrl, reg, ormask;
@@
-uhci_reg_mask8 (ctrl, reg, ~0, ormask)
+uhci_reg_write8 (ctrl, reg, uhci_reg_read8 (ctrl, reg) | ormask)
@@
expression ctrl, reg, andmask;
@@
-uhci_reg_mask32 (ctrl, reg, andmask, 0)
+uhci_reg_write32 (ctrl, reg, uhci_reg_read32 (ctrl, reg) & andmask)
@@
expression ctrl, reg, andmask;
@@
-uhci_reg_mask16 (ctrl, reg, andmask, 0)
+uhci_reg_write16 (ctrl, reg, uhci_reg_read16 (ctrl, reg) & andmask)
@@
expression ctrl, reg, andmask;
@@
-uhci_reg_mask16 (ctrl, reg, andmask, 0)
+uhci_reg_write16 (ctrl, reg, uhci_reg_read16 (ctrl, reg) & andmask)
Change-Id: Id0eb8327293831e54249d43fd06d50963c793699
Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com>
Reviewed-on: http://review.coreboot.org/477
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'payloads/libpayload/drivers/usb/uhci_rh.c')
-rw-r--r-- | payloads/libpayload/drivers/usb/uhci_rh.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/payloads/libpayload/drivers/usb/uhci_rh.c b/payloads/libpayload/drivers/usb/uhci_rh.c index 53b32f6a14..5074099255 100644 --- a/payloads/libpayload/drivers/usb/uhci_rh.c +++ b/payloads/libpayload/drivers/usb/uhci_rh.c @@ -53,14 +53,18 @@ uhci_rh_enable_port (usbdev_t *dev, int port) return; } - uhci_reg_mask16 (controller, port, ~(1 << 12), 0); /* wakeup */ + uhci_reg_write16(controller, port, + uhci_reg_read16(controller, port) & ~(1 << 12)); /* wakeup */ - uhci_reg_mask16 (controller, port, ~0, 1 << 9); /* reset */ + uhci_reg_write16(controller, port, + uhci_reg_read16(controller, port) | 1 << 9); /* reset */ mdelay (30); // >10ms - uhci_reg_mask16 (controller, port, ~(1 << 9), 0); + uhci_reg_write16(controller, port, + uhci_reg_read16(controller, port) & ~(1 << 9)); mdelay (1); // >5.3us per spec, <3ms because some devices make trouble - uhci_reg_mask16 (controller, port, ~0, 1 << 2); /* enable */ + uhci_reg_write16(controller, port, + uhci_reg_read16(controller, port) | 1 << 2); /* enable */ do { value = uhci_reg_read16 (controller, port); mdelay (1); @@ -75,7 +79,8 @@ uhci_rh_disable_port (usbdev_t *dev, int port) port = PORTSC2; if (port == 1) port = PORTSC1; - uhci_reg_mask16 (controller, port, ~4, 0); + uhci_reg_write16(controller, port, + uhci_reg_read16(controller, port) & ~4); int value; do { value = uhci_reg_read16 (controller, port); @@ -102,7 +107,8 @@ uhci_rh_scanport (usbdev_t *dev, int port) usb_detach_device(dev->controller, devno); RH_INST (dev)->port[offset] = -1; } - uhci_reg_mask16 (dev->controller, portsc, ~0, (1 << 3) | (1 << 2)); // clear port state change, enable port + uhci_reg_write16(dev->controller, portsc, + uhci_reg_read16(dev->controller, portsc) | (1 << 3) | (1 << 2)); // clear port state change, enable port mdelay(100); // wait for signal to stabilize |