]> git.karo-electronics.de Git - linux-beck.git/commitdiff
[media] media: Remove pre-allocated entity enumeration bitmap
authorSakari Ailus <sakari.ailus@iki.fi>
Wed, 16 Dec 2015 13:32:36 +0000 (11:32 -0200)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Mon, 11 Jan 2016 14:19:22 +0000 (12:19 -0200)
The bitmaps for entity enumerations used to be statically allocated. Now
that the drivers have been converted to use the new interface which
explicitly initialises the enum objects, drop the pre-allocated bitmaps.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/media-entity.c
include/media/media-entity.h

index 3cad525c2ac1feefe5191e4c32794afb27effd3a..5bd6f88501e24a867e0a3246bbbfb8b218a47374 100644 (file)
@@ -81,14 +81,10 @@ static inline const char *intf_type(struct media_interface *intf)
 __must_check int __media_entity_enum_init(struct media_entity_enum *ent_enum,
                                          int idx_max)
 {
-       if (idx_max > MEDIA_ENTITY_ENUM_MAX_ID) {
-               ent_enum->bmap = kcalloc(DIV_ROUND_UP(idx_max, BITS_PER_LONG),
-                                        sizeof(long), GFP_KERNEL);
-               if (!ent_enum->bmap)
-                       return -ENOMEM;
-       } else {
-               ent_enum->bmap = ent_enum->prealloc_bmap;
-       }
+       ent_enum->bmap = kcalloc(DIV_ROUND_UP(idx_max, BITS_PER_LONG),
+                                sizeof(long), GFP_KERNEL);
+       if (!ent_enum->bmap)
+               return -ENOMEM;
 
        bitmap_zero(ent_enum->bmap, idx_max);
        ent_enum->idx_max = idx_max;
@@ -104,9 +100,7 @@ EXPORT_SYMBOL_GPL(__media_entity_enum_init);
  */
 void media_entity_enum_cleanup(struct media_entity_enum *ent_enum)
 {
-       if (ent_enum->bmap != ent_enum->prealloc_bmap)
-               kfree(ent_enum->bmap);
-       ent_enum->bmap = NULL;
+       kfree(ent_enum->bmap);
 }
 EXPORT_SYMBOL_GPL(media_entity_enum_cleanup);
 
index a47a7c8a93cfdfbe0c3967813e8f23456600a9ae..4d963a3684c96a61bb046ef0f82a04770da87bea 100644 (file)
@@ -72,27 +72,22 @@ struct media_gobj {
 };
 
 #define MEDIA_ENTITY_ENUM_MAX_DEPTH    16
-#define MEDIA_ENTITY_ENUM_MAX_ID       64
 
 /*
  * The number of pads can't be bigger than the number of entities,
  * as the worse-case scenario is to have one entity linked up to
- * MEDIA_ENTITY_ENUM_MAX_ID - 1 entities.
+ * 63 entities.
  */
-#define MEDIA_ENTITY_MAX_PADS          (MEDIA_ENTITY_ENUM_MAX_ID - 1)
+#define MEDIA_ENTITY_MAX_PADS          63
 
 /**
  * struct media_entity_enum - An enumeration of media entities.
  *
- * @prealloc_bmap: Pre-allocated space reserved for media entities if the
- *             total number of entities does not exceed
- *             MEDIA_ENTITY_ENUM_MAX_ID.
  * @bmap:      Bit map in which each bit represents one entity at struct
  *             media_entity->internal_idx.
  * @idx_max:   Number of bits in bmap
  */
 struct media_entity_enum {
-       DECLARE_BITMAP(prealloc_bmap, MEDIA_ENTITY_ENUM_MAX_ID);
        unsigned long *bmap;
        int idx_max;
 };