]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
media: v4l: fwnode: Only zero the struct if bus type is set to V4L2_MBUS_UNKNOWN
authorSakari Ailus <sakari.ailus@linux.intel.com>
Tue, 31 Jul 2018 09:21:53 +0000 (05:21 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Thu, 4 Oct 2018 20:21:02 +0000 (16:21 -0400)
In order to prepare for allowing drivers to set the defaults for a given
bus, make zeroing the struct conditional based on detecting the bus.
All callers now set the bus type to zero which allows only zeroing the
remaining bus union.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Tested-by: Steve Longerbeam <steve_longerbeam@mentor.com>
Tested-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/v4l2-core/v4l2-fwnode.c

index 5f3bb3d1191c3c0e6d69afac137f446d820b67d4..f224b6c42c10d3358aafdec36f0edd49b4de1b65 100644 (file)
@@ -301,6 +301,12 @@ static int __v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode,
        u32 bus_type = 0;
        int rval;
 
+       if (vep->bus_type == V4L2_MBUS_UNKNOWN) {
+               /* Zero fields from bus union to until the end */
+               memset(&vep->bus, 0,
+                      sizeof(*vep) - offsetof(typeof(*vep), bus));
+       }
+
        pr_debug("===== begin V4L2 endpoint properties\n");
 
        /*
@@ -309,10 +315,6 @@ static int __v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode,
         */
        memset(&vep->base, 0, sizeof(vep->base));
 
-       /* Zero fields from bus_type to until the end */
-       memset(&vep->bus_type, 0, sizeof(*vep) -
-              offsetof(typeof(*vep), bus_type));
-
        fwnode_property_read_u32(fwnode, "bus-type", &bus_type);
 
        switch (bus_type) {