media: atomisp: add hmm_create_from_userdata() helper
authorHans de Goede <hdegoede@redhat.com>
Wed, 15 Jun 2022 20:50:25 +0000 (21:50 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Fri, 8 Jul 2022 15:23:35 +0000 (16:23 +0100)
Most hmm_alloc() callers want BO_PRIVATE type memory.

Add a hmm_create_from_userdata() helper for other cases so that
the hmm_alloc() calls for all the callers who don't want this
can be simplied.

Link: https://lore.kernel.org/linux-media/20220615205037.16549-29-hdegoede@redhat.com
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/staging/media/atomisp/include/hmm/hmm.h
drivers/staging/media/atomisp/pci/hmm/hmm.c
drivers/staging/media/atomisp/pci/runtime/frame/src/frame.c

index 99bf7d01f9ef97b6e7d255c47f82ecc797dabd1c..615805d0dd9153fdf1c91f559aa22036d1455cbb 100644 (file)
@@ -39,6 +39,7 @@ void hmm_cleanup(void);
 ia_css_ptr hmm_alloc(size_t bytes, enum hmm_bo_type type,
                     int from_highmem, const void __user *userptr,
                     const uint16_t attrs);
+ia_css_ptr hmm_create_from_userdata(size_t bytes, const void __user *userptr);
 void hmm_free(ia_css_ptr ptr);
 int hmm_load(ia_css_ptr virt, void *data, unsigned int bytes);
 int hmm_store(ia_css_ptr virt, const void *data, unsigned int bytes);
index bbb5f8775e9567c6dac74304a4664c81cf4c4191..a71db7969e1d8c83e657fe1a91771f17dfb2faf6 100644 (file)
@@ -221,6 +221,11 @@ create_bo_err:
        return 0;
 }
 
+ia_css_ptr hmm_create_from_userdata(size_t bytes, const void __user *userptr)
+{
+       return hmm_alloc(bytes, HMM_BO_USER, 0, userptr, 0);
+}
+
 void hmm_free(ia_css_ptr virt)
 {
        struct hmm_buffer_object *bo;
index f3b80650e1ad1b11955f23798d2ff80e5b5be49b..b0ce288b76be3f1c45f6924e54db0b951478e6d9 100644 (file)
@@ -171,7 +171,7 @@ int ia_css_frame_map(struct ia_css_frame **frame,
                goto error;
        }
 
-       me->data = hmm_alloc(me->data_bytes, HMM_BO_USER, 0, data, 0);
+       me->data = hmm_create_from_userdata(me->data_bytes, data);
        if (me->data == mmgr_NULL)
                err = -EINVAL;