1. 03 9月, 2014 16 次提交
  2. 02 9月, 2014 3 次提交
    • C
      [media] media: check status of dmxdev->exit in poll functions of demux&dvr · d102cac8
      Changbing Xiong 提交于
      when usb-type tuner is pulled out, user applications did not close device's FD,
      and go on polling the device, we should return POLLERR directly.
      Signed-off-by: NChangbing Xiong <cb.xiong@samsung.com>
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      d102cac8
    • C
      [media] media: correct return value in dvb_demux_poll · 236c9bfa
      Changbing Xiong 提交于
      Data type of return value is unsigned int, but in function of dvb_demux_poll,
      when the pointer of dmxdevfilter equals NULL, it will return -EINVAL, which
      is invalid.
      Signed-off-by: NChangbing Xiong <cb.xiong@samsung.com>
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      236c9bfa
    • C
      [media] media: fix kernel deadlock due to tuner pull-out while playing · 7a0af6ed
      Changbing Xiong 提交于
      Normally, ADAP_STREAMING bit is set in dvb_usb_start_feed and cleared in
      dvb_usb_stop_feed.
      
      But in exceptional cases, for example, when the tv is playing programs
      and the tuner is pulled out, then dvb_usbv2_disconnect is called.
      
      In such case, it will first call dvb_usbv2_adapter_frontend_exit to stop
      dvb_frontend_thread, and then call dvb_usbv2_adapter_dvb_exit to clear
      ADAP_STREAMING bit.
      
      At this point, if dvb_frontend_thread is sleeping and waiting for
      ADAP_STREAMING to be cleared to get out of sleep. then
      dvb_frontend_thread can never be stoped, because clearing ADAP_STREAMING
      bit is performed after dvb_frontend_thread is stopped (i.e. performed in
      dvb_usbv2_adapter_dvb_exit).
      
      So, deadlock:
      
      [  240.822037] INFO: task khubd:497 blocked for more than 120 seconds.
      [  240.822655] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
      [  240.830493] khubd           D c0013b3c     0   497      2 0x00000000
      [  240.836996] [<c0013b3c>] (__schedule+0x200/0x54c) from [<c00110f4>] (schedule_timeout+0x14c/0x19c)
      [  240.845940] [<c00110f4>] (schedule_timeout+0x14c/0x19c) from [<c00137f4>] (wait_for_common+0xac/0x150)
      [  240.855234] [<c00137f4>] (wait_for_common+0xac/0x150) from [<c004989c>] (kthread_stop+0x58/0x90)
      [  240.864004] [<c004989c>] (kthread_stop+0x58/0x90) from [<c03b2ebc>] (dvb_frontend_stop+0x3c/0x9c)
      [  240.872849] [<c03b2ebc>] (dvb_frontend_stop+0x3c/0x9c) from [<c03b2f3c>] (dvb_unregister_frontend+0x20/0xd8)
      [  240.882666] [<c03b2f3c>] (dvb_unregister_frontend+0x20/0xd8) from [<c03ed938>] (dvb_usbv2_exit+0x68/0xfc)
      [  240.892204] [<c03ed938>] (dvb_usbv2_exit+0x68/0xfc) from [<c03eda18>] (dvb_usbv2_disconnect+0x4c/0x70)
      [  240.901499] [<c03eda18>] (dvb_usbv2_disconnect+0x4c/0x70) from [<c031c050>] (usb_unbind_interface+0x58/0x188)
      [  240.911395] [<c031c050>] (usb_unbind_interface+0x58/0x188) from [<c02c3e78>] (__device_release_driver+0x74/0xd0)
      [  240.921544] [<c02c3e78>] (__device_release_driver+0x74/0xd0) from [<c02c3ef0>] (device_release_driver+0x1c/0x28)
      [  240.931697] [<c02c3ef0>] (device_release_driver+0x1c/0x28) from [<c02c39b8>] (bus_remove_device+0xc4/0xe4)
      [  240.941332] [<c02c39b8>] (bus_remove_device+0xc4/0xe4) from [<c02c1344>] (device_del+0xf4/0x178)
      [  240.950106] [<c02c1344>] (device_del+0xf4/0x178) from [<c0319eb0>] (usb_disable_device+0xa0/0x1c8)
      [  240.959040] [<c0319eb0>] (usb_disable_device+0xa0/0x1c8) from [<c03128b4>] (usb_disconnect+0x88/0x188)
      [  240.968326] [<c03128b4>] (usb_disconnect+0x88/0x188) from [<c0313edc>] (hub_thread+0x4d0/0x1200)
      [  240.977100] [<c0313edc>] (hub_thread+0x4d0/0x1200) from [<c0049690>] (kthread+0xa4/0xb0)
      [  240.985174] [<c0049690>] (kthread+0xa4/0xb0) from [<c0009118>] (ret_from_fork+0x14/0x3c)
      [  240.993259] INFO: task kdvb-ad-0-fe-0:3256 blocked for more than 120 seconds.
      [  241.000349] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
      [  241.008162] kdvb-ad-0-fe-0  D c0013b3c     0  3256      2 0x00000000
      [  241.014507] [<c0013b3c>] (__schedule+0x200/0x54c) from [<c03eda44>] (wait_schedule+0x8/0x10)
      [  241.022924] [<c03eda44>] (wait_schedule+0x8/0x10) from [<c001120c>] (__wait_on_bit+0x74/0xb8)
      [  241.031434] [<c001120c>] (__wait_on_bit+0x74/0xb8) from [<c00112b8>] (out_of_line_wait_on_bit+0x68/0x70)
      [  241.040902] [<c00112b8>] (out_of_line_wait_on_bit+0x68/0x70) from [<c03e5e88>] (dvb_usb_fe_sleep+0xf4/0xfc)
      [  241.050618] [<c03e5e88>] (dvb_usb_fe_sleep+0xf4/0xfc) from [<c03b4b74>] (dvb_frontend_thread+0x124/0x4e8)
      [  241.060164] [<c03b4b74>] (dvb_frontend_thread+0x124/0x4e8) from [<c0049690>] (kthread+0xa4/0xb0)
      [  241.068929] [<c0049690>] (kthread+0xa4/0xb0) from [<c0009118>] (ret_from_fork+0x14/0x3c)
      
      Fix it by calling dvb_usbv2_adapter_frontend_exit() latter.
      
      Test enviroment: odroidx2 + Hauppauge(WinTV-Aero-M)
      Signed-off-by: NChangbing Xiong <cb.xiong@samsung.com>
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      7a0af6ed
  3. 27 8月, 2014 21 次提交
    • M
      [media] omap: be sure that MMU is there for COMPILE_TEST · 38a07311
      Mauro Carvalho Chehab 提交于
      COMPILE_TEST fail on (some) archs without MMU.
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      38a07311
    • M
      [media] be sure that HAS_DMA is enabled for vb2-dma-contig · 12bd88e6
      Mauro Carvalho Chehab 提交于
      vb2-dma-contig depends on HAS_DMA, but the Kbuild doesn't take
      it into account at select.
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      12bd88e6
    • M
      [media] enable COMPILE_TEST for media drivers · 7155043c
      Mauro Carvalho Chehab 提交于
      There are several arch-specific media drivers that don't
      require asm-specific includes and can be successfully
      compiled on x86. Add COMPILE_TEST dependency for them, in
      order to allow a broader test on those drivers.
      
      That helps static analysis tools like Coverity to discover
      eventual troubles there.
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      7155043c
    • M
      [media] enable COMPILE_TEST for OMAP2 vout · 1dbfacf2
      Mauro Carvalho Chehab 提交于
      We don't need anything special to enable COMPILE_TEST for
      this driver.
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      1dbfacf2
    • M
      [media] allow COMPILE_TEST for SAMSUNG_EXYNOS4_IS · f2080e38
      Mauro Carvalho Chehab 提交于
      That helps some static checks, so enable it. While there, it was
      noticed that linux/sizes.h was missing:
      
      drivers/media/platform/exynos4-is/mipi-csis.c: In function ‘s5pcsis_s_rx_buffer’:
      drivers/media/platform/exynos4-is/mipi-csis.c:114:31: error: ‘SZ_4K’ undeclared (first use in this function)
       #define S5PCSIS_PKTDATA_SIZE  SZ_4K
                                     ^
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      f2080e38
    • M
      [media] enable COMPILE_TEST for ti-vbe · f3334180
      Mauro Carvalho Chehab 提交于
      Allowing COMPILE_TEST here is trivial, but there's one missing
      header to be added:
      
      drivers/media/platform/ti-vpe/vpe.c: In function ‘vpe_probe’:
      drivers/media/platform/ti-vpe/vpe.c:2266:56: error: ‘SZ_32K’ undeclared (first use in this function)
        dev->base = devm_ioremap(&pdev->dev, dev->res->start, SZ_32K);
                                                              ^
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      f3334180
    • M
      [media] enable COMPILE_TEST for MX2 eMMa-PrP driver · 1c17d8c7
      Mauro Carvalho Chehab 提交于
      By allowing compilation on all archs, we can use static
      analysis tools to test this driver.
      
      In order to do that, replace asm/sizes.h by its generic
      name (linux/sizes.h), with should keep doing the right
      thing.
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      1c17d8c7
    • M
      Revert "[media] staging: omap4iss: copy paste error in iss_get_clocks" · 821ee47e
      Mauro Carvalho Chehab 提交于
      This patch readded a call to iss_put_clocks(), with was removed
      by changeset 1153be56, causing a compilation breakage.
      
      This reverts commit d4b32646.
      821ee47e
    • M
      [media] s5p-jpeg: Get rid of a warning · c4382699
      Mauro Carvalho Chehab 提交于
      drivers/media/platform/s5p-jpeg/jpeg-hw-s5p.c: In function 's5p_jpeg_clear_int':
      drivers/media/platform/s5p-jpeg/jpeg-hw-s5p.c:327:16: warning: variable 'reg' set but not used [-Wunused-but-set-variable]
        unsigned long reg;
                      ^
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      c4382699
    • M
      [media] atmel-isi: get rid of a warning · b91677ad
      Mauro Carvalho Chehab 提交于
      drivers/media/platform/soc_camera/atmel-isi.c: In function 'start_streaming':
      drivers/media/platform/soc_camera/atmel-isi.c:387:6: warning: variable 'sr' set but not used [-Wunused-but-set-variable]
        u32 sr = 0;
            ^
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      b91677ad
    • M
      [media] mx2_camera: get rid of a warning · 615f1bcb
      Mauro Carvalho Chehab 提交于
      drivers/media/platform/soc_camera/mx2_camera.c: In function 'mx27_camera_emma_prp_reset':
      drivers/media/platform/soc_camera/mx2_camera.c:812:6: warning: variable 'cntl' set but not used [-Wunused-but-set-variable]
        u32 cntl;
            ^
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      615f1bcb
    • M
      [media] exynos4-is/media-dev: get rid of a warning for a dead code · cdf58a6f
      Mauro Carvalho Chehab 提交于
      drivers/media/platform/exynos4-is/media-dev.c: In function 'fimc_md_link_notify':
      drivers/media/platform/exynos4-is/media-dev.c:1102:4: warning: suggest braces around empty body in an 'else' statement [-Wempty-body]
          ; /* TODO: Link state change validation */
          ^
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      cdf58a6f
    • M
      [media] mipi-csis: get rid of a warning · 84ddba45
      Mauro Carvalho Chehab 提交于
      drivers/media/platform/exynos4-is/mipi-csis.c: In function 's5pcsis_parse_dt':
      drivers/media/platform/exynos4-is/mipi-csis.c:756:2: warning: comparison is always false due to limited range of data type [-Wtype-limits]
        if (state->index < 0 || state->index >= CSIS_MAX_ENTITIES)
        ^
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      84ddba45
    • M
      [media] s5p_mfc: get rid of several warnings · 8492ec69
      Mauro Carvalho Chehab 提交于
      drivers/media/platform/s5p-mfc/s5p_mfc_dec.c:826:5: warning: no previous prototype for 'vidioc_decoder_cmd' [-Wmissing-prototypes]
       int vidioc_decoder_cmd(struct file *file, void *priv,
           ^
      drivers/media/platform/s5p-mfc/s5p_mfc.c: In function 's5p_mfc_runtime_resume':
      drivers/media/platform/s5p-mfc/s5p_mfc.c:1314:6: warning: variable 'pre_power' set but not used [-Wunused-but-set-variable]
        int pre_power;
            ^
      drivers/media/platform/s5p-mfc/s5p_mfc_cmd_v5.c:163:25: warning: no previous prototype for 's5p_mfc_init_hw_cmds_v5' [-Wmissing-prototypes]
       struct s5p_mfc_hw_cmds *s5p_mfc_init_hw_cmds_v5(void)
                               ^
      drivers/media/platform/s5p-mfc/s5p_mfc_cmd_v6.c:156:25: warning: no previous prototype for 's5p_mfc_init_hw_cmds_v6' [-Wmissing-prototypes]
       struct s5p_mfc_hw_cmds *s5p_mfc_init_hw_cmds_v6(void)
                               ^
      drivers/media/platform/s5p-mfc/s5p_mfc_opr_v5.c: In function 's5p_mfc_run_dec_frame':
      drivers/media/platform/s5p-mfc/s5p_mfc_opr_v5.c:1189:15: warning: variable 'index' set but not used [-Wunused-but-set-variable]
        unsigned int index;
                     ^
      drivers/media/platform/s5p-mfc/s5p_mfc_enc.c: In function 'cleanup_ref_queue':
      drivers/media/platform/s5p-mfc/s5p_mfc_enc.c:742:27: warning: variable 'mb_c_addr' set but not used [-Wunused-but-set-variable]
        unsigned long mb_y_addr, mb_c_addr;
                                 ^
      drivers/media/platform/s5p-mfc/s5p_mfc_enc.c:742:16: warning: variable 'mb_y_addr' set but not used [-Wunused-but-set-variable]
        unsigned long mb_y_addr, mb_c_addr;
                      ^
      drivers/media/platform/s5p-mfc/s5p_mfc_enc.c: At top level:
      drivers/media/platform/s5p-mfc/s5p_mfc_enc.c:1684:5: warning: no previous prototype for 'vidioc_encoder_cmd' [-Wmissing-prototypes]
       int vidioc_encoder_cmd(struct file *file, void *priv,
           ^
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      8492ec69
    • M
      [media] s5p_mfc_ctrl: add missing s5p_mfc_ctrl.h header · b171e3d8
      Mauro Carvalho Chehab 提交于
      That gets rid of the following warnings:
      
      drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c:119:5: warning: no previous prototype for 's5p_mfc_release_firmware' [-Wmissing-prototypes]
       int s5p_mfc_release_firmware(struct s5p_mfc_dev *dev)
           ^
      drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c:132:5: warning: no previous prototype for 's5p_mfc_reset' [-Wmissing-prototypes]
       int s5p_mfc_reset(struct s5p_mfc_dev *dev)
           ^
      drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c:214:5: warning: no previous prototype for 's5p_mfc_init_hw' [-Wmissing-prototypes]
       int s5p_mfc_init_hw(struct s5p_mfc_dev *dev)
           ^
      drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c:291:6: warning: no previous prototype for 's5p_mfc_deinit_hw' [-Wmissing-prototypes]
       void s5p_mfc_deinit_hw(struct s5p_mfc_dev *dev)
            ^
      drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c:301:5: warning: no previous prototype for 's5p_mfc_sleep' [-Wmissing-prototypes]
       int s5p_mfc_sleep(struct s5p_mfc_dev *dev)
           ^
      drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c:330:5: warning: no previous prototype for 's5p_mfc_wakeup' [-Wmissing-prototypes]
       int s5p_mfc_wakeup(struct s5p_mfc_dev *dev)
           ^
      drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c:378:5: warning: no previous prototype for 's5p_mfc_open_mfc_inst' [-Wmissing-prototypes]
       int s5p_mfc_open_mfc_inst(struct s5p_mfc_dev *dev, struct s5p_mfc_ctx *ctx)
           ^
      drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c:420:6: warning: no previous prototype for 's5p_mfc_close_mfc_inst' [-Wmissing-prototypes]
       void s5p_mfc_close_mfc_inst(struct s5p_mfc_dev *dev, struct s5p_mfc_ctx *ctx)
            ^
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      b171e3d8
    • M
      [media] fimc-is-param: get rid of warnings · 2ff1d4c1
      Mauro Carvalho Chehab 提交于
      In file included from drivers/media/platform/exynos4-is/fimc-is-param.c:31:0:
      drivers/media/platform/exynos4-is/fimc-is-errno.h:245:20: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
       const char * const fimc_is_strerr(unsigned int error);
                          ^
      drivers/media/platform/exynos4-is/fimc-is-errno.h:246:20: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
       const char * const fimc_is_param_strerr(unsigned int error);
                          ^
      drivers/media/platform/exynos4-is/fimc-is-param.c: In function 'fimc_is_set_initial_params':
      drivers/media/platform/exynos4-is/fimc-is-param.c:670:23: warning: variable 'sensor' set but not used [-Wunused-but-set-variable]
        struct sensor_param *sensor;
                             ^
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      2ff1d4c1
    • M
      [media] g2d: remove unused var · dc916aa7
      Mauro Carvalho Chehab 提交于
      drivers/media/platform/s5p-g2d/g2d.c: In function 'job_abort':
      drivers/media/platform/s5p-g2d/g2d.c:493:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
        int ret;
            ^
      
      The job_abort function returns void. No sense to get the
      returned argument, if this won't be used.
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      dc916aa7
    • M
      [media] s5p-jpeg: get rid of some warnings · af425be8
      Mauro Carvalho Chehab 提交于
      Declare this as static:
      
      drivers/media/platform/s5p-jpeg/jpeg-core.c:732:6: warning: no previous prototype for 'exynos4_jpeg_set_huff_tbl' [-Wmissing-prototypes]
       void exynos4_jpeg_set_huff_tbl(void __iomem *base)
            ^
      
      And don't compile this dead code, while not needed:
      drivers/media/platform/s5p-jpeg/jpeg-hw-exynos3250.c:236:14: warning: no previous prototype for 'exynos3250_jpeg_get_y' [-Wmissing-prototypes]
       unsigned int exynos3250_jpeg_get_y(void __iomem *regs)
                    ^
      drivers/media/platform/s5p-jpeg/jpeg-hw-exynos3250.c:241:14: warning: no previous prototype for 'exynos3250_jpeg_get_x' [-Wmissing-prototypes]
       unsigned int exynos3250_jpeg_get_x(void __iomem *regs)
                    ^
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      af425be8
    • M
      [media] omap_vout: Get rid of a few warnings · 52334bb3
      Mauro Carvalho Chehab 提交于
      drivers/media/platform/omap/omap_vout.c: In function 'omapvid_setup_overlay':
      drivers/media/platform/omap/omap_vout.c:372:29: warning: variable 'pixheight' set but not used [-Wunused-but-set-variable]
        int cropheight, cropwidth, pixheight, pixwidth;
                                   ^
      drivers/media/platform/omap/omap_vout.c: In function 'vidioc_s_ctrl':
      drivers/media/platform/omap/omap_vout.c:1454:24: warning: variable 'ovl' set but not used [-Wunused-but-set-variable]
         struct omap_overlay *ovl;
                              ^
      drivers/media/platform/omap/omap_vout.c: In function 'vidioc_reqbufs':
      drivers/media/platform/omap/omap_vout.c:1492:55: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
        if ((req->type != V4L2_BUF_TYPE_VIDEO_OUTPUT) || (req->count < 0))
                                                             ^
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      52334bb3
    • M
      [media] omap: fix compilation if !VIDEO_OMAP2_VOUT_VRFB · 92e3919a
      Mauro Carvalho Chehab 提交于
      When CONFIG_VIDEO_OMAP2_VOUT_VRFB is disabled, the compilation
      will fail, as the function stubs are wrong. Also, as they weren't
      declared as static inline, lots of warnings will be generated.
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      92e3919a
    • M
      [media] gsc: Use %pad for dma_addr_t · 286da990
      Mauro Carvalho Chehab 提交于
      drivers/media/platform/exynos-gsc/gsc-core.c:855:2: note: in expansion of macro 'pr_debug'
        pr_debug("ADDR: y= 0x%X  cb= 0x%X cr= 0x%X ret= %d",
        ^
      include/linux/dynamic_debug.h:64:16: warning: format '%X' expects argument of type 'unsigned int', but argument 4 has type 'dma
      _addr_t' [-Wformat=]
        static struct _ddebug  __aligned(8)   \
                      ^
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      286da990