drm_hwcomposer: Use atomic modeset to set crtc timing

Use the new drm blob ioctl and atomic modeset properties to
do atomic modesetting, as opposed to the old setCrtc call.

This allows us to set timing as soon as the system layer requests
a new active config, as opposed to delaying it until we have
an fb. Aside from reducing complexity, this should help with
event control requests as we'll be able to service them with
hw vblanks instead of synthesized sleeps.

Change-Id: I9c80d44f52f52881a3a25b2ae518973d468bc110
Signed-off-by: Sean Paul <seanpaul@chromium.org>
diff --git a/drmconnector.h b/drmconnector.h
index b31d9a9..0db8913 100644
--- a/drmconnector.h
+++ b/drmconnector.h
@@ -53,9 +53,10 @@
   ModeIter begin_modes() const;
   ModeIter end_modes() const;
   const DrmMode &active_mode() const;
-  int set_active_mode(uint32_t mode_id);
+  void set_active_mode(const DrmMode &mode);
 
   const DrmProperty &dpms_property() const;
+  const DrmProperty &crtc_id_property() const;
 
   EncoderIter begin_possible_encoders() const;
   EncoderIter end_possible_encoders() const;
@@ -84,6 +85,7 @@
   std::vector<DrmMode> modes_;
 
   DrmProperty dpms_property_;
+  DrmProperty crtc_id_property_;
 
   std::vector<DrmEncoder *> possible_encoders_;
 };