hdlcd.cc (10839:10cac0f0f419) hdlcd.cc (10840:48039363f67a)
1/*
2 * Copyright (c) 2010-2013, 2015 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 60 unchanged lines hidden (view full) ---

69 dmaStartAddr(0), dmaCurAddr(0), dmaMaxAddr(0), dmaPendingNum(0),
70 frameUnderrun(false), pixelBufferSize(0),
71 pixelIndex(0), doUpdateParams(false), frameUnderway(false),
72 dmaBytesInFlight(0),
73 startFrameEvent(this), endFrameEvent(this), renderPixelEvent(this),
74 fillPixelBufferEvent(this), intEvent(this),
75 dmaDoneEventAll(MAX_OUTSTANDING_DMA_REQ_CAPACITY, this),
76 dmaDoneEventFree(MAX_OUTSTANDING_DMA_REQ_CAPACITY),
1/*
2 * Copyright (c) 2010-2013, 2015 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 60 unchanged lines hidden (view full) ---

69 dmaStartAddr(0), dmaCurAddr(0), dmaMaxAddr(0), dmaPendingNum(0),
70 frameUnderrun(false), pixelBufferSize(0),
71 pixelIndex(0), doUpdateParams(false), frameUnderway(false),
72 dmaBytesInFlight(0),
73 startFrameEvent(this), endFrameEvent(this), renderPixelEvent(this),
74 fillPixelBufferEvent(this), intEvent(this),
75 dmaDoneEventAll(MAX_OUTSTANDING_DMA_REQ_CAPACITY, this),
76 dmaDoneEventFree(MAX_OUTSTANDING_DMA_REQ_CAPACITY),
77 enableCapture(p->enable_capture)
77 enableCapture(p->enable_capture),
78 workaround_swap_rb(p->workaround_swap_rb)
78{
79 pioSize = 0xFFFF;
80
81 for (int i = 0; i < MAX_OUTSTANDING_DMA_REQ_CAPACITY; ++i)
82 dmaDoneEventFree[i] = &dmaDoneEventAll[i];
83
84 if (vnc)
85 vnc->setFrameBuffer(&fb);

--- 413 unchanged lines hidden (view full) ---

499 }
500
501 schedule(renderPixelEvent, nextEventTick);
502}
503
504PixelConverter
505HDLcd::pixelConverter() const
506{
79{
80 pioSize = 0xFFFF;
81
82 for (int i = 0; i < MAX_OUTSTANDING_DMA_REQ_CAPACITY; ++i)
83 dmaDoneEventFree[i] = &dmaDoneEventAll[i];
84
85 if (vnc)
86 vnc->setFrameBuffer(&fb);

--- 413 unchanged lines hidden (view full) ---

500 }
501
502 schedule(renderPixelEvent, nextEventTick);
503}
504
505PixelConverter
506HDLcd::pixelConverter() const
507{
507 return PixelConverter(
508 bytesPerPixel(),
509 red_select.offset, green_select.offset, blue_select.offset,
510 red_select.size, green_select.size, blue_select.size,
508 ByteOrder byte_order(
511 pixel_format.big_endian ? BigEndianByteOrder : LittleEndianByteOrder);
509 pixel_format.big_endian ? BigEndianByteOrder : LittleEndianByteOrder);
510
511 /* Some Linux kernels have a broken driver that swaps the red and
512 * blue color select registers. */
513 if (!workaround_swap_rb) {
514 return PixelConverter(
515 bytesPerPixel(),
516 red_select.offset, green_select.offset, blue_select.offset,
517 red_select.size, green_select.size, blue_select.size,
518 byte_order);
519 } else {
520 return PixelConverter(
521 bytesPerPixel(),
522 blue_select.offset, green_select.offset, red_select.offset,
523 blue_select.size, green_select.size, red_select.size,
524 byte_order);
525 }
512}
513
514void
515HDLcd::endFrame() {
516 assert(pixelBufferSize == 0);
517 assert(dmaPendingNum == 0);
518 assert(dmaBytesInFlight == 0);
519 assert(dmaDoneEventFree.size() == dmaDoneEventAll.size());

--- 300 unchanged lines hidden ---
526}
527
528void
529HDLcd::endFrame() {
530 assert(pixelBufferSize == 0);
531 assert(dmaPendingNum == 0);
532 assert(dmaBytesInFlight == 0);
533 assert(dmaDoneEventFree.size() == dmaDoneEventAll.size());

--- 300 unchanged lines hidden ---