[OpenBIOS] [commit] r1388 - trunk/openbios-devel/drivers
repository service
svn at openbios.org
Fri Feb 26 00:00:02 CET 2016
Author: mcayland
Date: Fri Feb 26 00:00:01 2016
New Revision: 1388
URL: http://tracker.coreboot.org/trac/openbios/changeset/1388
Log:
escc.c: tidy-up legacy and non-legacy codepaths
Now that the reg addresses are all table-driven, it is possible to
simplify and almost remove the legacy and non-legacy codepaths.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>
Modified:
trunk/openbios-devel/drivers/escc.c
Modified: trunk/openbios-devel/drivers/escc.c
==============================================================================
--- trunk/openbios-devel/drivers/escc.c Thu Feb 25 23:59:56 2016 (r1387)
+++ trunk/openbios-devel/drivers/escc.c Fri Feb 26 00:00:01 2016 (r1388)
@@ -386,6 +386,7 @@
phandle_t dnode, aliases;
cell props[10];
+ ucell offset;
int index;
int legacy;
int reg_offsets[2][2][3] = {
@@ -438,28 +439,20 @@
set_property(dnode, "compatible", buf, 9);
if (legacy) {
- props[0] = IO_ESCC_LEGACY_OFFSET + reg_offsets[legacy][index][0];
- props[1] = 0x1;
- props[2] = IO_ESCC_LEGACY_OFFSET + reg_offsets[legacy][index][1];
- props[3] = 0x1;
- props[4] = IO_ESCC_LEGACY_OFFSET + reg_offsets[legacy][index][2];
- props[5] = 0x1;
- set_property(dnode, "reg", (char *)&props, 6 * sizeof(cell));
+ offset = IO_ESCC_LEGACY_OFFSET;
} else {
- props[0] = IO_ESCC_OFFSET + reg_offsets[legacy][index][0];
- props[1] = 0x1;
- props[2] = IO_ESCC_OFFSET + reg_offsets[legacy][index][1];
- props[3] = 0x1;
- props[4] = IO_ESCC_OFFSET + reg_offsets[legacy][index][2];
- props[5] = 0x1;
- set_property(dnode, "reg", (char *)&props, 6 * sizeof(cell));
+ offset = IO_ESCC_OFFSET;
}
- if (legacy) {
- props[0] = addr + IO_ESCC_LEGACY_OFFSET + index * 0x4;
- } else {
- props[0] = addr + IO_ESCC_OFFSET + index * 0x20;
- }
+ props[0] = offset + reg_offsets[legacy][index][0];
+ props[1] = 0x1;
+ props[2] = offset + reg_offsets[legacy][index][1];
+ props[3] = 0x1;
+ props[4] = offset + reg_offsets[legacy][index][2];
+ props[5] = 0x1;
+ set_property(dnode, "reg", (char *)&props, 6 * sizeof(cell));
+
+ props[0] = addr + offset + reg_offsets[legacy][index][0];
OLDWORLD(set_property(dnode, "AAPL,address",
(char *)&props, 1 * sizeof(cell)));
@@ -475,15 +468,8 @@
device_end();
- if (legacy) {
- uart_init_line(
- (unsigned char*)addr + IO_ESCC_LEGACY_OFFSET + index * 0x4,
- CONFIG_SERIAL_SPEED);
- } else {
- uart_init_line(
- (unsigned char*)addr + IO_ESCC_OFFSET + index * 0x20,
- CONFIG_SERIAL_SPEED);
- }
+ uart_init_line((unsigned char*)addr + offset + reg_offsets[legacy][index][0],
+ CONFIG_SERIAL_SPEED);
}
void
More information about the OpenBIOS
mailing list