Print media device information when called with -p/--print
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Tue, 11 Oct 2011 09:42:49 +0000 (11:42 +0200)
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Fri, 14 Oct 2011 10:07:59 +0000 (12:07 +0200)
In addition to printing pipeline information, print the media device
information.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
src/main.c
src/mediactl.c
src/mediactl.h

index c04e12f..d8bd150 100644 (file)
@@ -301,6 +301,27 @@ int main(int argc, char **argv)
                goto out;
        }
 
                goto out;
        }
 
+       if (media_opts.print) {
+               printf("Media controller API version %u.%u.%u\n\n",
+                      (media->info.media_version << 16) & 0xff,
+                      (media->info.media_version << 8) & 0xff,
+                      (media->info.media_version << 0) & 0xff);
+               printf("Media device information\n"
+                      "------------------------\n"
+                      "driver          %s\n"
+                      "model           %s\n"
+                      "serial          %s\n"
+                      "bus info        %s\n"
+                      "hw revision     0x%x\n"
+                      "driver version  %u.%u.%u\n\n",
+                      media->info.driver, media->info.model,
+                      media->info.serial, media->info.bus_info,
+                      media->info.hw_revision,
+                      (media->info.driver_version << 16) & 0xff,
+                      (media->info.driver_version << 8) & 0xff,
+                      (media->info.driver_version << 0) & 0xff);
+       }
+
        if (media_opts.entity) {
                struct media_entity *entity;
 
        if (media_opts.entity) {
                struct media_entity *entity;
 
index c5da471..5b8c587 100644 (file)
@@ -452,6 +452,15 @@ struct media_device *media_open_debug(
                return NULL;
        }
 
                return NULL;
        }
 
+       ret = ioctl(media->fd, MEDIA_IOC_DEVICE_INFO, &media->info);
+       if (ret < 0) {
+               media_dbg(media, "%s: Unable to retrieve media device "
+                         "information for device %s (%s)\n", __func__,
+                         name, strerror(errno));
+               media_close(media);
+               return NULL;
+       }
+
        media_dbg(media, "Enumerating entities\n");
 
        ret = media_enum_entities(media);
        media_dbg(media, "Enumerating entities\n");
 
        ret = media_enum_entities(media);
index d4dfc65..1b47b7e 100644 (file)
@@ -54,6 +54,7 @@ struct media_entity {
 
 struct media_device {
        int fd;
 
 struct media_device {
        int fd;
+       struct media_device_info info;
        struct media_entity *entities;
        unsigned int entities_count;
        void (*debug_handler)(void *, ...);
        struct media_entity *entities;
        unsigned int entities_count;
        void (*debug_handler)(void *, ...);