summaryrefslogtreecommitdiff
path: root/demos
diff options
context:
space:
mode:
authorjim.bride@linux.intel.com <jim.bride@linux.intel.com>2016-06-15 10:48:32 -0700
committerMarius Vlad <marius.c.vlad@intel.com>2016-07-04 17:28:56 +0300
commit8a0b93743646312f49e1eebfaf41495875ffbdf2 (patch)
tree57a3da060e085f1ce18f1c6b3e8ac6172cdbdfa3 /demos
parente73e398536a6415b28840a2f83bfbd50aa413b2b (diff)
demos/intel_sprite_on: Fix connector iteration bug
Instead of looping until the first disconnected port is found, now go through all possible connectors, drawing the sprite on any connected display. v2: Print a message if we don't find any valid connectors. Signed-off-by: Jim Bride <jim.bride@linux.intel.com> Signed-off-by: Marius Vlad <marius.c.vlad@intel.com>
Diffstat (limited to 'demos')
-rw-r--r--demos/intel_sprite_on.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/demos/intel_sprite_on.c b/demos/intel_sprite_on.c
index 6dddded2..a3ece099 100644
--- a/demos/intel_sprite_on.c
+++ b/demos/intel_sprite_on.c
@@ -518,6 +518,8 @@ static void ricochet(int tiled, int sprite_w, int sprite_h,
char key;
int sprite_plane_count = 0;
int i;
+ int found_count = 0;
+
// Open up I915 graphics device
gfx_fd = drmOpen("i915", NULL);
if (gfx_fd < 0) {
@@ -564,10 +566,15 @@ static void ricochet(int tiled, int sprite_w, int sprite_h,
// Find the native (preferred) display mode
connector_find_preferred_mode(gfx_fd, gfx_resources, &curr_connector);
if (curr_connector.mode_valid == 0) {
- printf("No valid preferred mode detected\n");
- goto out;
+
+ if (((c_index + 1) == gfx_resources->count_connectors) &&
+ (found_count == 0))
+ printf("Failed to find any valid connections.\n");
+ continue;
}
+ found_count++;
+
// Determine if sprite hardware is available on pipe
// associated with this connector.
sprite_plane_count = connector_find_plane(gfx_fd, &curr_connector,