|  | // Copyright 2017 The Fuchsia Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #pragma once | 
|  |  | 
|  | #include "display-device.h" | 
|  |  | 
|  | namespace i915 { | 
|  |  | 
|  | class HdmiDisplay : public DisplayDevice, private edid::EdidDdcSource { | 
|  | public: | 
|  | HdmiDisplay(Controller* controller, registers::Ddi ddi, registers::Pipe pipe); | 
|  |  | 
|  | private: | 
|  | bool QueryDevice(edid::Edid* edid, zx_display_info_t* info) final; | 
|  | bool DefaultModeset() final; | 
|  | bool DdcRead(uint8_t segment, uint8_t offset, uint8_t* buf, uint8_t len) final; | 
|  |  | 
|  | bool I2cFinish(); | 
|  | bool I2cWaitForHwReady(); | 
|  | bool I2cClearNack(); | 
|  | bool SetDdcSegment(uint8_t block_num); | 
|  | bool GMBusRead(uint8_t addr, uint8_t* buf, uint8_t size); | 
|  | bool GMBusWrite(uint8_t addr, uint8_t* buf, uint8_t size); | 
|  |  | 
|  | bool is_hdmi_display_; | 
|  | }; | 
|  |  | 
|  | } // namespace i915 |