]> rtime.felk.cvut.cz Git - zynq/linux.git/commitdiff
drm: xlnx: mixer: Fix linking failure for ARCH arm
authorVishal Sagar <vishal.sagar@xilinx.com>
Fri, 21 Sep 2018 05:02:00 +0000 (10:32 +0530)
committerMichal Simek <michal.simek@xilinx.com>
Wed, 7 Nov 2018 10:04:26 +0000 (11:04 +0100)
The kernel fails to build on 32-bit arm architecture when Video Mixer
driver is enabled due to unsupported modulo operations in 32 bit mode.
The error shown is "undefined reference to `__aeabi_uldivmod'".
This is fixed by changing the data type of luma and chroma address to
dma_addr_t instead of u64.

Signed-off-by: Vishal Sagar <vishal.sagar@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/gpu/drm/xlnx/xlnx_mixer.c

index ad36124297650379fb5e68a46c5a5519162b3ae3..40ea7785961734ff1ec9c88f5338d6b098eba362 100644 (file)
@@ -1180,7 +1180,8 @@ static int xlnx_mix_disp_set_layer_alpha(struct xlnx_mix_plane *plane,
  */
 static int xlnx_mix_set_layer_buff_addr(struct xlnx_mix_hw *mixer,
                                        enum xlnx_mix_layer_id id,
-                                       u64 luma_addr, u64 chroma_addr)
+                                       dma_addr_t luma_addr,
+                                       dma_addr_t chroma_addr)
 {
        struct xlnx_mix_layer_data *layer_data;
        u32 align, offset;
@@ -1592,7 +1593,7 @@ static int xlnx_mix_set_plane(struct xlnx_mix_plane *plane,
        struct xlnx_mix *mixer;
        struct drm_gem_cma_object *luma_buffer;
        u32 luma_stride = fb->pitches[0];
-       u64 luma_addr, chroma_addr = 0;
+       dma_addr_t luma_addr, chroma_addr = 0;
        u32 active_area_width;
        u32 active_area_height;
        enum xlnx_mix_layer_id layer_id;