Changeset 2b1f860 in mainline for boot/genarch/ofw.c
- Timestamp:
- 2008-12-06T23:35:32Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 20eb5e4d
- Parents:
- 49093a4
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
boot/genarch/ofw.c
r49093a4 r2b1f860 374 374 } 375 375 376 /** 377 * Sets up the palette for the 8-bit color depth configuration so that the 378 * 3:2:3 color scheme can be used. Checks that setting the palette makes sense 379 * (appropriate nodes exist in the OBP tree and the color depth is not greater 380 * than 8). 381 * 382 * @return true if the palette has been set, false otherwise 383 */ 384 int setup_palette(void) 385 { 386 char device_name[BUF_SIZE]; 387 388 /* resolve alias */ 389 if (ofw_get_property(ofw_aliases, "screen", device_name, 390 sizeof(device_name)) <= 0) 391 return false; 392 393 /* for depth greater than 8 it makes no sense to set up the palette */ 394 uint32_t depth; 395 phandle device = ofw_find_device(device_name); 396 if (device == -1) 397 return false; 398 if (ofw_get_property(device, "depth", &depth, sizeof(uint32_t)) <= 0) 399 return false; 400 if (depth != 8) 401 return false; 402 403 /* required in order to be able to make a method call */ 404 ihandle screen = ofw_open(device_name); 405 if (screen == -1) 406 return false; 407 408 /* setup the palette so that the 3:2:3 scheme is usable */ 409 unsigned int i; 410 for (i = 0; i < 256; i++) 411 if (ofw_call("call-method", 6, 1, NULL, "color!", screen, 412 i, 413 i << 5, 414 (i >> 3) << 6, 415 (i >> 5) << 5) != 0); 416 return true; 417 } 376 418 377 419 void ofw_quiesce(void)
Note:
See TracChangeset
for help on using the changeset viewer.