diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-04 12:50:07 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-04 12:50:07 -0400 |
commit | 3c83e61e67256e0bb08c46cc2db43b58fd617251 (patch) | |
tree | 0233e1e04e6449c60b01ff5dea8bea85bcf22f08 /drivers/media/platform/omap3isp | |
parent | 4a4389abdd9822fdf3cc2ac6ed87eb811fd43acc (diff) | |
parent | a83b93a7480441a47856dc9104bea970e84cda87 (diff) |
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab:
"The main set of series of patches for media subsystem, including:
- document RC sysfs class
- added an API to setup scancode to allow waking up systems using the
Remote Controller
- add API for SDR devices. Drivers are still on staging
- some API improvements for getting EDID data from media
inputs/outputs
- new DVB frontend driver for drx-j (ATSC)
- one driver (it913x/it9137) got removed, in favor of an improvement
on another driver (af9035)
- added a skeleton V4L2 PCI driver at documentation
- added a dual flash driver (lm3646)
- added a new IR driver (img-ir)
- added an IR scancode decoder for the Sharp protocol
- some improvements at the usbtv driver, to allow its core to be
reused.
- added a new SDR driver (rtl2832u_sdr)
- added a new tuner driver (msi001)
- several improvements at em28xx driver to fix PM support, device
removal and to split the V4L2 specific bits into a separate
sub-driver
- one driver got converted to videobuf2 (s2255drv)
- the e4000 tuner driver now follows an improved binding model
- some fixes at V4L2 compat32 code
- several fixes and enhancements at videobuf2 code
- some cleanups at V4L2 API documentation
- usual driver enhancements, new board additions and misc fixups"
[ NOTE! This merge effective drops commit 4329b93b283c ("of: Reduce
indentation in of_graph_get_next_endpoint").
The of_graph_get_next_endpoint() function was moved and renamed by
commit fd9fdb78a9bf ("[media] of: move graph helpers from
drivers/media/v4l2-core to drivers/of"). It was originally called
v4l2_of_get_next_endpoint() and lived in the file
drivers/media/v4l2-core/v4l2-of.c.
In that original location, it was then fixed to support empty port
nodes by commit b9db140c1e46 ("[media] v4l: of: Support empty port
nodes"), and that commit clashes badly with the dropped "Reduce
intendation" commit. I had to choose one or the other, and decided
that the "Support empty port nodes" commit was more important ]
* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (426 commits)
[media] em28xx-dvb: fix PCTV 461e tuner I2C binding
Revert "[media] em28xx-dvb: fix PCTV 461e tuner I2C binding"
[media] em28xx: fix PCTV 290e LNA oops
[media] em28xx-dvb: fix PCTV 461e tuner I2C binding
[media] m88ds3103: fix bug on .set_tone()
[media] saa7134: fix WARN_ON during resume
[media] v4l2-dv-timings: add module name, description, license
[media] videodev2.h: add parenthesis around macro arguments
[media] saa6752hs: depends on CRC32
[media] si4713: fix Kconfig dependencies
[media] Sensoray 2255 uses videobuf2
[media] adv7180: free an interrupt on failure paths in init_device()
[media] e4000: make VIDEO_V4L2 dependency optional
[media] af9033: Don't export functions for the hardware filter
[media] af9035: use af9033 PID filters
[media] af9033: implement PID filter
[media] rtl2832_sdr: do not use dynamic stack allocation
[media] e4000: fix 32-bit build error
[media] em28xx-audio: make sure audio is unmuted on open()
[media] DocBook media: v4l2_format_sdr was renamed to v4l2_sdr_format
...
Diffstat (limited to 'drivers/media/platform/omap3isp')
-rw-r--r-- | drivers/media/platform/omap3isp/isp.c | 7 | ||||
-rw-r--r-- | drivers/media/platform/omap3isp/isp.h | 12 | ||||
-rw-r--r-- | drivers/media/platform/omap3isp/ispccdc.c | 10 | ||||
-rw-r--r-- | drivers/media/platform/omap3isp/ispccdc.h | 6 | ||||
-rw-r--r-- | drivers/media/platform/omap3isp/ispccp2.c | 6 | ||||
-rw-r--r-- | drivers/media/platform/omap3isp/isphist.c | 4 | ||||
-rw-r--r-- | drivers/media/platform/omap3isp/isppreview.c | 22 | ||||
-rw-r--r-- | drivers/media/platform/omap3isp/ispqueue.c | 2 | ||||
-rw-r--r-- | drivers/media/platform/omap3isp/ispresizer.c | 6 | ||||
-rw-r--r-- | drivers/media/platform/omap3isp/ispresizer.h | 4 | ||||
-rw-r--r-- | drivers/media/platform/omap3isp/ispstat.c | 4 | ||||
-rw-r--r-- | drivers/media/platform/omap3isp/ispvideo.c | 12 |
12 files changed, 50 insertions, 45 deletions
diff --git a/drivers/media/platform/omap3isp/isp.c b/drivers/media/platform/omap3isp/isp.c index 5807185262fe..06a0df434249 100644 --- a/drivers/media/platform/omap3isp/isp.c +++ b/drivers/media/platform/omap3isp/isp.c | |||
@@ -391,7 +391,7 @@ static void isp_disable_interrupts(struct isp_device *isp) | |||
391 | * @isp: OMAP3 ISP device | 391 | * @isp: OMAP3 ISP device |
392 | * @idle: Consider idle state. | 392 | * @idle: Consider idle state. |
393 | * | 393 | * |
394 | * Set the power settings for the ISP and SBL bus and cConfigure the HS/VS | 394 | * Set the power settings for the ISP and SBL bus and configure the HS/VS |
395 | * interrupt source. | 395 | * interrupt source. |
396 | * | 396 | * |
397 | * We need to configure the HS/VS interrupt source before interrupts get | 397 | * We need to configure the HS/VS interrupt source before interrupts get |
@@ -588,9 +588,6 @@ static void isp_isr_sbl(struct isp_device *isp) | |||
588 | * @_isp: Pointer to the OMAP3 ISP device | 588 | * @_isp: Pointer to the OMAP3 ISP device |
589 | * | 589 | * |
590 | * Handles the corresponding callback if plugged in. | 590 | * Handles the corresponding callback if plugged in. |
591 | * | ||
592 | * Returns IRQ_HANDLED when IRQ was correctly handled, or IRQ_NONE when the | ||
593 | * IRQ wasn't handled. | ||
594 | */ | 591 | */ |
595 | static irqreturn_t isp_isr(int irq, void *_isp) | 592 | static irqreturn_t isp_isr(int irq, void *_isp) |
596 | { | 593 | { |
@@ -1420,7 +1417,7 @@ int omap3isp_module_sync_idle(struct media_entity *me, wait_queue_head_t *wait, | |||
1420 | } | 1417 | } |
1421 | 1418 | ||
1422 | /* | 1419 | /* |
1423 | * omap3isp_module_sync_is_stopped - Helper to verify if module was stopping | 1420 | * omap3isp_module_sync_is_stopping - Helper to verify if module was stopping |
1424 | * @wait: ISP submodule's wait queue for streamoff/interrupt synchronization | 1421 | * @wait: ISP submodule's wait queue for streamoff/interrupt synchronization |
1425 | * @stopping: flag which tells module wants to stop | 1422 | * @stopping: flag which tells module wants to stop |
1426 | * | 1423 | * |
diff --git a/drivers/media/platform/omap3isp/isp.h b/drivers/media/platform/omap3isp/isp.h index 081f5ec5a663..6d5e69711907 100644 --- a/drivers/media/platform/omap3isp/isp.h +++ b/drivers/media/platform/omap3isp/isp.h | |||
@@ -265,7 +265,7 @@ void omap3isp_unregister_entities(struct platform_device *pdev); | |||
265 | 265 | ||
266 | /* | 266 | /* |
267 | * isp_reg_readl - Read value of an OMAP3 ISP register | 267 | * isp_reg_readl - Read value of an OMAP3 ISP register |
268 | * @dev: Device pointer specific to the OMAP3 ISP. | 268 | * @isp: Device pointer specific to the OMAP3 ISP. |
269 | * @isp_mmio_range: Range to which the register offset refers to. | 269 | * @isp_mmio_range: Range to which the register offset refers to. |
270 | * @reg_offset: Register offset to read from. | 270 | * @reg_offset: Register offset to read from. |
271 | * | 271 | * |
@@ -280,7 +280,7 @@ u32 isp_reg_readl(struct isp_device *isp, enum isp_mem_resources isp_mmio_range, | |||
280 | 280 | ||
281 | /* | 281 | /* |
282 | * isp_reg_writel - Write value to an OMAP3 ISP register | 282 | * isp_reg_writel - Write value to an OMAP3 ISP register |
283 | * @dev: Device pointer specific to the OMAP3 ISP. | 283 | * @isp: Device pointer specific to the OMAP3 ISP. |
284 | * @reg_value: 32 bit value to write to the register. | 284 | * @reg_value: 32 bit value to write to the register. |
285 | * @isp_mmio_range: Range to which the register offset refers to. | 285 | * @isp_mmio_range: Range to which the register offset refers to. |
286 | * @reg_offset: Register offset to write into. | 286 | * @reg_offset: Register offset to write into. |
@@ -293,8 +293,8 @@ void isp_reg_writel(struct isp_device *isp, u32 reg_value, | |||
293 | } | 293 | } |
294 | 294 | ||
295 | /* | 295 | /* |
296 | * isp_reg_and - Clear individual bits in an OMAP3 ISP register | 296 | * isp_reg_clr - Clear individual bits in an OMAP3 ISP register |
297 | * @dev: Device pointer specific to the OMAP3 ISP. | 297 | * @isp: Device pointer specific to the OMAP3 ISP. |
298 | * @mmio_range: Range to which the register offset refers to. | 298 | * @mmio_range: Range to which the register offset refers to. |
299 | * @reg: Register offset to work on. | 299 | * @reg: Register offset to work on. |
300 | * @clr_bits: 32 bit value which would be cleared in the register. | 300 | * @clr_bits: 32 bit value which would be cleared in the register. |
@@ -310,7 +310,7 @@ void isp_reg_clr(struct isp_device *isp, enum isp_mem_resources mmio_range, | |||
310 | 310 | ||
311 | /* | 311 | /* |
312 | * isp_reg_set - Set individual bits in an OMAP3 ISP register | 312 | * isp_reg_set - Set individual bits in an OMAP3 ISP register |
313 | * @dev: Device pointer specific to the OMAP3 ISP. | 313 | * @isp: Device pointer specific to the OMAP3 ISP. |
314 | * @mmio_range: Range to which the register offset refers to. | 314 | * @mmio_range: Range to which the register offset refers to. |
315 | * @reg: Register offset to work on. | 315 | * @reg: Register offset to work on. |
316 | * @set_bits: 32 bit value which would be set in the register. | 316 | * @set_bits: 32 bit value which would be set in the register. |
@@ -326,7 +326,7 @@ void isp_reg_set(struct isp_device *isp, enum isp_mem_resources mmio_range, | |||
326 | 326 | ||
327 | /* | 327 | /* |
328 | * isp_reg_clr_set - Clear and set invidial bits in an OMAP3 ISP register | 328 | * isp_reg_clr_set - Clear and set invidial bits in an OMAP3 ISP register |
329 | * @dev: Device pointer specific to the OMAP3 ISP. | 329 | * @isp: Device pointer specific to the OMAP3 ISP. |
330 | * @mmio_range: Range to which the register offset refers to. | 330 | * @mmio_range: Range to which the register offset refers to. |
331 | * @reg: Register offset to work on. | 331 | * @reg: Register offset to work on. |
332 | * @clr_bits: 32 bit value which would be cleared in the register. | 332 | * @clr_bits: 32 bit value which would be cleared in the register. |
diff --git a/drivers/media/platform/omap3isp/ispccdc.c b/drivers/media/platform/omap3isp/ispccdc.c index 5db2c88b9ad8..4d920c800ff5 100644 --- a/drivers/media/platform/omap3isp/ispccdc.c +++ b/drivers/media/platform/omap3isp/ispccdc.c | |||
@@ -293,7 +293,7 @@ static int __ccdc_lsc_enable(struct isp_ccdc_device *ccdc, int enable) | |||
293 | isp_reg_clr(isp, OMAP3_ISP_IOMEM_CCDC, | 293 | isp_reg_clr(isp, OMAP3_ISP_IOMEM_CCDC, |
294 | ISPCCDC_LSC_CONFIG, ISPCCDC_LSC_ENABLE); | 294 | ISPCCDC_LSC_CONFIG, ISPCCDC_LSC_ENABLE); |
295 | ccdc->lsc.state = LSC_STATE_STOPPED; | 295 | ccdc->lsc.state = LSC_STATE_STOPPED; |
296 | dev_warn(to_device(ccdc), "LSC prefecth timeout\n"); | 296 | dev_warn(to_device(ccdc), "LSC prefetch timeout\n"); |
297 | return -ETIMEDOUT; | 297 | return -ETIMEDOUT; |
298 | } | 298 | } |
299 | ccdc->lsc.state = LSC_STATE_RUNNING; | 299 | ccdc->lsc.state = LSC_STATE_RUNNING; |
@@ -674,7 +674,7 @@ static void ccdc_config_imgattr(struct isp_ccdc_device *ccdc, u32 colptn) | |||
674 | /* | 674 | /* |
675 | * ccdc_config - Set CCDC configuration from userspace | 675 | * ccdc_config - Set CCDC configuration from userspace |
676 | * @ccdc: Pointer to ISP CCDC device. | 676 | * @ccdc: Pointer to ISP CCDC device. |
677 | * @userspace_add: Structure containing CCDC configuration sent from userspace. | 677 | * @ccdc_struct: Structure containing CCDC configuration sent from userspace. |
678 | * | 678 | * |
679 | * Returns 0 if successful, -EINVAL if the pointer to the configuration | 679 | * Returns 0 if successful, -EINVAL if the pointer to the configuration |
680 | * structure is null, or the copy_from_user function fails to copy user space | 680 | * structure is null, or the copy_from_user function fails to copy user space |
@@ -793,7 +793,7 @@ static void ccdc_apply_controls(struct isp_ccdc_device *ccdc) | |||
793 | 793 | ||
794 | /* | 794 | /* |
795 | * omap3isp_ccdc_restore_context - Restore values of the CCDC module registers | 795 | * omap3isp_ccdc_restore_context - Restore values of the CCDC module registers |
796 | * @dev: Pointer to ISP device | 796 | * @isp: Pointer to ISP device |
797 | */ | 797 | */ |
798 | void omap3isp_ccdc_restore_context(struct isp_device *isp) | 798 | void omap3isp_ccdc_restore_context(struct isp_device *isp) |
799 | { | 799 | { |
@@ -2525,7 +2525,7 @@ error_video: | |||
2525 | 2525 | ||
2526 | /* | 2526 | /* |
2527 | * omap3isp_ccdc_init - CCDC module initialization. | 2527 | * omap3isp_ccdc_init - CCDC module initialization. |
2528 | * @dev: Device pointer specific to the OMAP3 ISP. | 2528 | * @isp: Device pointer specific to the OMAP3 ISP. |
2529 | * | 2529 | * |
2530 | * TODO: Get the initialisation values from platform data. | 2530 | * TODO: Get the initialisation values from platform data. |
2531 | * | 2531 | * |
@@ -2564,7 +2564,7 @@ int omap3isp_ccdc_init(struct isp_device *isp) | |||
2564 | 2564 | ||
2565 | /* | 2565 | /* |
2566 | * omap3isp_ccdc_cleanup - CCDC module cleanup. | 2566 | * omap3isp_ccdc_cleanup - CCDC module cleanup. |
2567 | * @dev: Device pointer specific to the OMAP3 ISP. | 2567 | * @isp: Device pointer specific to the OMAP3 ISP. |
2568 | */ | 2568 | */ |
2569 | void omap3isp_ccdc_cleanup(struct isp_device *isp) | 2569 | void omap3isp_ccdc_cleanup(struct isp_device *isp) |
2570 | { | 2570 | { |
diff --git a/drivers/media/platform/omap3isp/ispccdc.h b/drivers/media/platform/omap3isp/ispccdc.h index a5da9e19edbf..9d24e4107864 100644 --- a/drivers/media/platform/omap3isp/ispccdc.h +++ b/drivers/media/platform/omap3isp/ispccdc.h | |||
@@ -63,12 +63,6 @@ struct ispccdc_lsc_config_req { | |||
63 | 63 | ||
64 | /* | 64 | /* |
65 | * ispccdc_lsc - CCDC LSC parameters | 65 | * ispccdc_lsc - CCDC LSC parameters |
66 | * @update_config: Set when user changes config | ||
67 | * @request_enable: Whether LSC is requested to be enabled | ||
68 | * @config: LSC config set by user | ||
69 | * @update_table: Set when user provides a new LSC table to table_new | ||
70 | * @table_new: LSC table set by user, ISP address | ||
71 | * @table_inuse: LSC table currently in use, ISP address | ||
72 | */ | 66 | */ |
73 | struct ispccdc_lsc { | 67 | struct ispccdc_lsc { |
74 | enum ispccdc_lsc_state state; | 68 | enum ispccdc_lsc_state state; |
diff --git a/drivers/media/platform/omap3isp/ispccp2.c b/drivers/media/platform/omap3isp/ispccp2.c index e84fe0543e47..b30b67d22a58 100644 --- a/drivers/media/platform/omap3isp/ispccp2.c +++ b/drivers/media/platform/omap3isp/ispccp2.c | |||
@@ -211,7 +211,7 @@ static void ccp2_mem_enable(struct isp_ccp2_device *ccp2, u8 enable) | |||
211 | /* | 211 | /* |
212 | * ccp2_phyif_config - Initialize CCP2 phy interface config | 212 | * ccp2_phyif_config - Initialize CCP2 phy interface config |
213 | * @ccp2: Pointer to ISP CCP2 device | 213 | * @ccp2: Pointer to ISP CCP2 device |
214 | * @config: CCP2 platform data | 214 | * @pdata: CCP2 platform data |
215 | * | 215 | * |
216 | * Configure the CCP2 physical interface module from platform data. | 216 | * Configure the CCP2 physical interface module from platform data. |
217 | * | 217 | * |
@@ -518,7 +518,7 @@ static void ccp2_mem_configure(struct isp_ccp2_device *ccp2, | |||
518 | ISPCCP2_LCM_IRQSTATUS_EOF_IRQ, | 518 | ISPCCP2_LCM_IRQSTATUS_EOF_IRQ, |
519 | OMAP3_ISP_IOMEM_CCP2, ISPCCP2_LCM_IRQSTATUS); | 519 | OMAP3_ISP_IOMEM_CCP2, ISPCCP2_LCM_IRQSTATUS); |
520 | 520 | ||
521 | /* Enable LCM interupts */ | 521 | /* Enable LCM interrupts */ |
522 | isp_reg_set(isp, OMAP3_ISP_IOMEM_CCP2, ISPCCP2_LCM_IRQENABLE, | 522 | isp_reg_set(isp, OMAP3_ISP_IOMEM_CCP2, ISPCCP2_LCM_IRQENABLE, |
523 | ISPCCP2_LCM_IRQSTATUS_EOF_IRQ | | 523 | ISPCCP2_LCM_IRQSTATUS_EOF_IRQ | |
524 | ISPCCP2_LCM_IRQSTATUS_OCPERROR_IRQ); | 524 | ISPCCP2_LCM_IRQSTATUS_OCPERROR_IRQ); |
@@ -1096,7 +1096,7 @@ static int ccp2_init_entities(struct isp_ccp2_device *ccp2) | |||
1096 | * implementation we use a fixed 32 bytes alignment regardless of the | 1096 | * implementation we use a fixed 32 bytes alignment regardless of the |
1097 | * input format and width. If strict 128 bits alignment support is | 1097 | * input format and width. If strict 128 bits alignment support is |
1098 | * required ispvideo will need to be made aware of this special dual | 1098 | * required ispvideo will need to be made aware of this special dual |
1099 | * alignement requirements. | 1099 | * alignment requirements. |
1100 | */ | 1100 | */ |
1101 | ccp2->video_in.type = V4L2_BUF_TYPE_VIDEO_OUTPUT; | 1101 | ccp2->video_in.type = V4L2_BUF_TYPE_VIDEO_OUTPUT; |
1102 | ccp2->video_in.bpl_alignment = 32; | 1102 | ccp2->video_in.bpl_alignment = 32; |
diff --git a/drivers/media/platform/omap3isp/isphist.c b/drivers/media/platform/omap3isp/isphist.c index e070c24048ef..06a5f8164eaa 100644 --- a/drivers/media/platform/omap3isp/isphist.c +++ b/drivers/media/platform/omap3isp/isphist.c | |||
@@ -299,7 +299,7 @@ static u32 hist_get_buf_size(struct omap3isp_hist_config *conf) | |||
299 | 299 | ||
300 | /* | 300 | /* |
301 | * hist_validate_params - Helper function to check user given params. | 301 | * hist_validate_params - Helper function to check user given params. |
302 | * @user_cfg: Pointer to user configuration structure. | 302 | * @new_conf: Pointer to user configuration structure. |
303 | * | 303 | * |
304 | * Returns 0 on success configuration. | 304 | * Returns 0 on success configuration. |
305 | */ | 305 | */ |
@@ -351,7 +351,7 @@ static int hist_validate_params(struct ispstat *hist, void *new_conf) | |||
351 | 351 | ||
352 | buf_size = hist_get_buf_size(user_cfg); | 352 | buf_size = hist_get_buf_size(user_cfg); |
353 | if (buf_size > user_cfg->buf_size) | 353 | if (buf_size > user_cfg->buf_size) |
354 | /* User's buf_size request wasn't enoght */ | 354 | /* User's buf_size request wasn't enough */ |
355 | user_cfg->buf_size = buf_size; | 355 | user_cfg->buf_size = buf_size; |
356 | else if (user_cfg->buf_size > OMAP3ISP_HIST_MAX_BUF_SIZE) | 356 | else if (user_cfg->buf_size > OMAP3ISP_HIST_MAX_BUF_SIZE) |
357 | user_cfg->buf_size = OMAP3ISP_HIST_MAX_BUF_SIZE; | 357 | user_cfg->buf_size = OMAP3ISP_HIST_MAX_BUF_SIZE; |
diff --git a/drivers/media/platform/omap3isp/isppreview.c b/drivers/media/platform/omap3isp/isppreview.c index 1c776c1186f1..395b2b068c75 100644 --- a/drivers/media/platform/omap3isp/isppreview.c +++ b/drivers/media/platform/omap3isp/isppreview.c | |||
@@ -122,7 +122,7 @@ static struct omap3isp_prev_csc flr_prev_csc = { | |||
122 | #define PREV_MAX_OUT_WIDTH_REV_15 4096 | 122 | #define PREV_MAX_OUT_WIDTH_REV_15 4096 |
123 | 123 | ||
124 | /* | 124 | /* |
125 | * Coeficient Tables for the submodules in Preview. | 125 | * Coefficient Tables for the submodules in Preview. |
126 | * Array is initialised with the values from.the tables text file. | 126 | * Array is initialised with the values from.the tables text file. |
127 | */ | 127 | */ |
128 | 128 | ||
@@ -971,7 +971,8 @@ static void preview_setup_hw(struct isp_prev_device *prev, u32 update, | |||
971 | 971 | ||
972 | /* | 972 | /* |
973 | * preview_config_ycpos - Configure byte layout of YUV image. | 973 | * preview_config_ycpos - Configure byte layout of YUV image. |
974 | * @mode: Indicates the required byte layout. | 974 | * @prev: pointer to previewer private structure |
975 | * @pixelcode: pixel code | ||
975 | */ | 976 | */ |
976 | static void | 977 | static void |
977 | preview_config_ycpos(struct isp_prev_device *prev, | 978 | preview_config_ycpos(struct isp_prev_device *prev, |
@@ -1079,6 +1080,7 @@ static void preview_config_input_format(struct isp_prev_device *prev, | |||
1079 | */ | 1080 | */ |
1080 | static void preview_config_input_size(struct isp_prev_device *prev, u32 active) | 1081 | static void preview_config_input_size(struct isp_prev_device *prev, u32 active) |
1081 | { | 1082 | { |
1083 | const struct v4l2_mbus_framefmt *format = &prev->formats[PREV_PAD_SINK]; | ||
1082 | struct isp_device *isp = to_isp_device(prev); | 1084 | struct isp_device *isp = to_isp_device(prev); |
1083 | unsigned int sph = prev->crop.left; | 1085 | unsigned int sph = prev->crop.left; |
1084 | unsigned int eph = prev->crop.left + prev->crop.width - 1; | 1086 | unsigned int eph = prev->crop.left + prev->crop.width - 1; |
@@ -1086,6 +1088,14 @@ static void preview_config_input_size(struct isp_prev_device *prev, u32 active) | |||
1086 | unsigned int elv = prev->crop.top + prev->crop.height - 1; | 1088 | unsigned int elv = prev->crop.top + prev->crop.height - 1; |
1087 | u32 features; | 1089 | u32 features; |
1088 | 1090 | ||
1091 | if (format->code != V4L2_MBUS_FMT_Y8_1X8 && | ||
1092 | format->code != V4L2_MBUS_FMT_Y10_1X10) { | ||
1093 | sph -= 2; | ||
1094 | eph += 2; | ||
1095 | slv -= 2; | ||
1096 | elv += 2; | ||
1097 | } | ||
1098 | |||
1089 | features = (prev->params.params[0].features & active) | 1099 | features = (prev->params.params[0].features & active) |
1090 | | (prev->params.params[1].features & ~active); | 1100 | | (prev->params.params[1].features & ~active); |
1091 | 1101 | ||
@@ -1363,8 +1373,8 @@ static void preview_init_params(struct isp_prev_device *prev) | |||
1363 | } | 1373 | } |
1364 | 1374 | ||
1365 | /* | 1375 | /* |
1366 | * preview_max_out_width - Handle previewer hardware ouput limitations | 1376 | * preview_max_out_width - Handle previewer hardware output limitations |
1367 | * @isp_revision : ISP revision | 1377 | * @prev: pointer to previewer private structure |
1368 | * returns maximum width output for current isp revision | 1378 | * returns maximum width output for current isp revision |
1369 | */ | 1379 | */ |
1370 | static unsigned int preview_max_out_width(struct isp_prev_device *prev) | 1380 | static unsigned int preview_max_out_width(struct isp_prev_device *prev) |
@@ -1610,7 +1620,7 @@ static const struct v4l2_ctrl_ops preview_ctrl_ops = { | |||
1610 | 1620 | ||
1611 | /* | 1621 | /* |
1612 | * preview_ioctl - Handle preview module private ioctl's | 1622 | * preview_ioctl - Handle preview module private ioctl's |
1613 | * @prev: pointer to preview context structure | 1623 | * @sd: pointer to v4l2 subdev structure |
1614 | * @cmd: configuration command | 1624 | * @cmd: configuration command |
1615 | * @arg: configuration argument | 1625 | * @arg: configuration argument |
1616 | * return -EINVAL or zero on success | 1626 | * return -EINVAL or zero on success |
@@ -2341,7 +2351,7 @@ error_video_in: | |||
2341 | 2351 | ||
2342 | /* | 2352 | /* |
2343 | * omap3isp_preview_init - Previewer initialization. | 2353 | * omap3isp_preview_init - Previewer initialization. |
2344 | * @dev : Pointer to ISP device | 2354 | * @isp : Pointer to ISP device |
2345 | * return -ENOMEM or zero on success | 2355 | * return -ENOMEM or zero on success |
2346 | */ | 2356 | */ |
2347 | int omap3isp_preview_init(struct isp_device *isp) | 2357 | int omap3isp_preview_init(struct isp_device *isp) |
diff --git a/drivers/media/platform/omap3isp/ispqueue.c b/drivers/media/platform/omap3isp/ispqueue.c index 5f0f8fab1d17..a5e65858e799 100644 --- a/drivers/media/platform/omap3isp/ispqueue.c +++ b/drivers/media/platform/omap3isp/ispqueue.c | |||
@@ -597,7 +597,7 @@ static int isp_video_buffer_wait(struct isp_video_buffer *buf, int nonblocking) | |||
597 | * isp_video_queue_free - Free video buffers memory | 597 | * isp_video_queue_free - Free video buffers memory |
598 | * | 598 | * |
599 | * Buffers can only be freed if the queue isn't streaming and if no buffer is | 599 | * Buffers can only be freed if the queue isn't streaming and if no buffer is |
600 | * mapped to userspace. Return -EBUSY if those conditions aren't statisfied. | 600 | * mapped to userspace. Return -EBUSY if those conditions aren't satisfied. |
601 | * | 601 | * |
602 | * This function must be called with the queue lock held. | 602 | * This function must be called with the queue lock held. |
603 | */ | 603 | */ |
diff --git a/drivers/media/platform/omap3isp/ispresizer.c b/drivers/media/platform/omap3isp/ispresizer.c index 0d36b8bc9f98..86369df81d74 100644 --- a/drivers/media/platform/omap3isp/ispresizer.c +++ b/drivers/media/platform/omap3isp/ispresizer.c | |||
@@ -206,7 +206,7 @@ static void resizer_set_bilinear(struct isp_res_device *res, | |||
206 | /* | 206 | /* |
207 | * resizer_set_ycpos - Luminance and chrominance order | 207 | * resizer_set_ycpos - Luminance and chrominance order |
208 | * @res: Device context. | 208 | * @res: Device context. |
209 | * @order: order type. | 209 | * @pixelcode: pixel code. |
210 | */ | 210 | */ |
211 | static void resizer_set_ycpos(struct isp_res_device *res, | 211 | static void resizer_set_ycpos(struct isp_res_device *res, |
212 | enum v4l2_mbus_pixelcode pixelcode) | 212 | enum v4l2_mbus_pixelcode pixelcode) |
@@ -918,8 +918,8 @@ static void resizer_calc_ratios(struct isp_res_device *res, | |||
918 | /* | 918 | /* |
919 | * resizer_set_crop_params - Setup hardware with cropping parameters | 919 | * resizer_set_crop_params - Setup hardware with cropping parameters |
920 | * @res : resizer private structure | 920 | * @res : resizer private structure |
921 | * @crop_rect : current crop rectangle | 921 | * @input : format on sink pad |
922 | * @ratio : resizer ratios | 922 | * @output : format on source pad |
923 | * return none | 923 | * return none |
924 | */ | 924 | */ |
925 | static void resizer_set_crop_params(struct isp_res_device *res, | 925 | static void resizer_set_crop_params(struct isp_res_device *res, |
diff --git a/drivers/media/platform/omap3isp/ispresizer.h b/drivers/media/platform/omap3isp/ispresizer.h index 70c1c0e1bbdf..9b01e9047c15 100644 --- a/drivers/media/platform/omap3isp/ispresizer.h +++ b/drivers/media/platform/omap3isp/ispresizer.h | |||
@@ -30,12 +30,12 @@ | |||
30 | #include <linux/types.h> | 30 | #include <linux/types.h> |
31 | 31 | ||
32 | /* | 32 | /* |
33 | * Constants for filter coefficents count | 33 | * Constants for filter coefficients count |
34 | */ | 34 | */ |
35 | #define COEFF_CNT 32 | 35 | #define COEFF_CNT 32 |
36 | 36 | ||
37 | /* | 37 | /* |
38 | * struct isprsz_coef - Structure for resizer filter coeffcients. | 38 | * struct isprsz_coef - Structure for resizer filter coefficients. |
39 | * @h_filter_coef_4tap: Horizontal filter coefficients for 8-phase/4-tap | 39 | * @h_filter_coef_4tap: Horizontal filter coefficients for 8-phase/4-tap |
40 | * mode (.5x-4x) | 40 | * mode (.5x-4x) |
41 | * @v_filter_coef_4tap: Vertical filter coefficients for 8-phase/4-tap | 41 | * @v_filter_coef_4tap: Vertical filter coefficients for 8-phase/4-tap |
diff --git a/drivers/media/platform/omap3isp/ispstat.c b/drivers/media/platform/omap3isp/ispstat.c index a75407c3a726..5707f85c4cc4 100644 --- a/drivers/media/platform/omap3isp/ispstat.c +++ b/drivers/media/platform/omap3isp/ispstat.c | |||
@@ -144,7 +144,7 @@ static int isp_stat_buf_check_magic(struct ispstat *stat, | |||
144 | for (w = buf->virt_addr + buf_size, end = w + MAGIC_SIZE; | 144 | for (w = buf->virt_addr + buf_size, end = w + MAGIC_SIZE; |
145 | w < end; w++) { | 145 | w < end; w++) { |
146 | if (unlikely(*w != MAGIC_NUM)) { | 146 | if (unlikely(*w != MAGIC_NUM)) { |
147 | dev_dbg(stat->isp->dev, "%s: endding magic check does " | 147 | dev_dbg(stat->isp->dev, "%s: ending magic check does " |
148 | "not match.\n", stat->subdev.name); | 148 | "not match.\n", stat->subdev.name); |
149 | return -EINVAL; | 149 | return -EINVAL; |
150 | } | 150 | } |
@@ -841,7 +841,7 @@ int omap3isp_stat_s_stream(struct v4l2_subdev *subdev, int enable) | |||
841 | if (enable) { | 841 | if (enable) { |
842 | /* | 842 | /* |
843 | * Only set enable PCR bit if the module was previously | 843 | * Only set enable PCR bit if the module was previously |
844 | * enabled through ioct. | 844 | * enabled through ioctl. |
845 | */ | 845 | */ |
846 | isp_stat_try_enable(stat); | 846 | isp_stat_try_enable(stat); |
847 | } else { | 847 | } else { |
diff --git a/drivers/media/platform/omap3isp/ispvideo.c b/drivers/media/platform/omap3isp/ispvideo.c index 856fdf554035..85b4036ba5e4 100644 --- a/drivers/media/platform/omap3isp/ispvideo.c +++ b/drivers/media/platform/omap3isp/ispvideo.c | |||
@@ -333,7 +333,7 @@ isp_video_check_format(struct isp_video *video, struct isp_video_fh *vfh) | |||
333 | 333 | ||
334 | /* | 334 | /* |
335 | * ispmmu_vmap - Wrapper for Virtual memory mapping of a scatter gather list | 335 | * ispmmu_vmap - Wrapper for Virtual memory mapping of a scatter gather list |
336 | * @dev: Device pointer specific to the OMAP3 ISP. | 336 | * @isp: Device pointer specific to the OMAP3 ISP. |
337 | * @sglist: Pointer to source Scatter gather list to allocate. | 337 | * @sglist: Pointer to source Scatter gather list to allocate. |
338 | * @sglen: Number of elements of the scatter-gatter list. | 338 | * @sglen: Number of elements of the scatter-gatter list. |
339 | * | 339 | * |
@@ -363,7 +363,7 @@ ispmmu_vmap(struct isp_device *isp, const struct scatterlist *sglist, int sglen) | |||
363 | 363 | ||
364 | /* | 364 | /* |
365 | * ispmmu_vunmap - Unmap a device address from the ISP MMU | 365 | * ispmmu_vunmap - Unmap a device address from the ISP MMU |
366 | * @dev: Device pointer specific to the OMAP3 ISP. | 366 | * @isp: Device pointer specific to the OMAP3 ISP. |
367 | * @da: Device address generated from a ispmmu_vmap call. | 367 | * @da: Device address generated from a ispmmu_vmap call. |
368 | */ | 368 | */ |
369 | static void ispmmu_vunmap(struct isp_device *isp, dma_addr_t da) | 369 | static void ispmmu_vunmap(struct isp_device *isp, dma_addr_t da) |
@@ -886,7 +886,11 @@ static int isp_video_check_external_subdevs(struct isp_video *video, | |||
886 | struct v4l2_ext_controls ctrls; | 886 | struct v4l2_ext_controls ctrls; |
887 | struct v4l2_ext_control ctrl; | 887 | struct v4l2_ext_control ctrl; |
888 | unsigned int i; | 888 | unsigned int i; |
889 | int ret = 0; | 889 | int ret; |
890 | |||
891 | /* Memory-to-memory pipelines have no external subdev. */ | ||
892 | if (pipe->input != NULL) | ||
893 | return 0; | ||
890 | 894 | ||
891 | for (i = 0; i < ARRAY_SIZE(ents); i++) { | 895 | for (i = 0; i < ARRAY_SIZE(ents); i++) { |
892 | /* Is the entity part of the pipeline? */ | 896 | /* Is the entity part of the pipeline? */ |
@@ -905,7 +909,7 @@ static int isp_video_check_external_subdevs(struct isp_video *video, | |||
905 | 909 | ||
906 | if (!source) { | 910 | if (!source) { |
907 | dev_warn(isp->dev, "can't find source, failing now\n"); | 911 | dev_warn(isp->dev, "can't find source, failing now\n"); |
908 | return ret; | 912 | return -EINVAL; |
909 | } | 913 | } |
910 | 914 | ||
911 | if (media_entity_type(source) != MEDIA_ENT_T_V4L2_SUBDEV) | 915 | if (media_entity_type(source) != MEDIA_ENT_T_V4L2_SUBDEV) |