diff options
| author | James Bottomley <jejb@titanic.(none)> | 2005-05-20 16:27:44 -0400 |
|---|---|---|
| committer | James Bottomley <jejb@titanic.(none)> | 2005-05-20 16:27:44 -0400 |
| commit | ad34ea2cc3845ef4dcd7d12fb0fa8484734bd672 (patch) | |
| tree | ad434400f5ecaa33b433c8f830e40792d8d6c05c /drivers/usb/media/pwc/pwc-ctrl.c | |
| parent | 90356ac3194bf91a441a5f9c3067af386ef62462 (diff) | |
| parent | 88d7bd8cb9eb8d64bf7997600b0d64f7834047c5 (diff) | |
merge by hand - fix up rejections in Documentation/DocBook/Makefile
Diffstat (limited to 'drivers/usb/media/pwc/pwc-ctrl.c')
| -rw-r--r-- | drivers/usb/media/pwc/pwc-ctrl.c | 80 |
1 files changed, 40 insertions, 40 deletions
diff --git a/drivers/usb/media/pwc/pwc-ctrl.c b/drivers/usb/media/pwc/pwc-ctrl.c index 26aa914bc541..42ec468d52d6 100644 --- a/drivers/usb/media/pwc/pwc-ctrl.c +++ b/drivers/usb/media/pwc/pwc-ctrl.c | |||
| @@ -418,6 +418,44 @@ static inline int set_video_mode_Kiara(struct pwc_device *pdev, int size, int fr | |||
| 418 | 418 | ||
| 419 | 419 | ||
| 420 | 420 | ||
| 421 | static void pwc_set_image_buffer_size(struct pwc_device *pdev) | ||
| 422 | { | ||
| 423 | int i, factor = 0, filler = 0; | ||
| 424 | |||
| 425 | /* for PALETTE_YUV420P */ | ||
| 426 | switch(pdev->vpalette) | ||
| 427 | { | ||
| 428 | case VIDEO_PALETTE_YUV420P: | ||
| 429 | factor = 6; | ||
| 430 | filler = 128; | ||
| 431 | break; | ||
| 432 | case VIDEO_PALETTE_RAW: | ||
| 433 | factor = 6; /* can be uncompressed YUV420P */ | ||
| 434 | filler = 0; | ||
| 435 | break; | ||
| 436 | } | ||
| 437 | |||
| 438 | /* Set sizes in bytes */ | ||
| 439 | pdev->image.size = pdev->image.x * pdev->image.y * factor / 4; | ||
| 440 | pdev->view.size = pdev->view.x * pdev->view.y * factor / 4; | ||
| 441 | |||
| 442 | /* Align offset, or you'll get some very weird results in | ||
| 443 | YUV420 mode... x must be multiple of 4 (to get the Y's in | ||
| 444 | place), and y even (or you'll mixup U & V). This is less of a | ||
| 445 | problem for YUV420P. | ||
| 446 | */ | ||
| 447 | pdev->offset.x = ((pdev->view.x - pdev->image.x) / 2) & 0xFFFC; | ||
| 448 | pdev->offset.y = ((pdev->view.y - pdev->image.y) / 2) & 0xFFFE; | ||
| 449 | |||
| 450 | /* Fill buffers with gray or black */ | ||
| 451 | for (i = 0; i < MAX_IMAGES; i++) { | ||
| 452 | if (pdev->image_ptr[i] != NULL) | ||
| 453 | memset(pdev->image_ptr[i], filler, pdev->view.size); | ||
| 454 | } | ||
| 455 | } | ||
| 456 | |||
| 457 | |||
| 458 | |||
| 421 | /** | 459 | /** |
| 422 | @pdev: device structure | 460 | @pdev: device structure |
| 423 | @width: viewport width | 461 | @width: viewport width |
| @@ -475,44 +513,6 @@ int pwc_set_video_mode(struct pwc_device *pdev, int width, int height, int frame | |||
| 475 | } | 513 | } |
| 476 | 514 | ||
| 477 | 515 | ||
| 478 | void pwc_set_image_buffer_size(struct pwc_device *pdev) | ||
| 479 | { | ||
| 480 | int i, factor = 0, filler = 0; | ||
| 481 | |||
| 482 | /* for PALETTE_YUV420P */ | ||
| 483 | switch(pdev->vpalette) | ||
| 484 | { | ||
| 485 | case VIDEO_PALETTE_YUV420P: | ||
| 486 | factor = 6; | ||
| 487 | filler = 128; | ||
| 488 | break; | ||
| 489 | case VIDEO_PALETTE_RAW: | ||
| 490 | factor = 6; /* can be uncompressed YUV420P */ | ||
| 491 | filler = 0; | ||
| 492 | break; | ||
| 493 | } | ||
| 494 | |||
| 495 | /* Set sizes in bytes */ | ||
| 496 | pdev->image.size = pdev->image.x * pdev->image.y * factor / 4; | ||
| 497 | pdev->view.size = pdev->view.x * pdev->view.y * factor / 4; | ||
| 498 | |||
| 499 | /* Align offset, or you'll get some very weird results in | ||
| 500 | YUV420 mode... x must be multiple of 4 (to get the Y's in | ||
| 501 | place), and y even (or you'll mixup U & V). This is less of a | ||
| 502 | problem for YUV420P. | ||
| 503 | */ | ||
| 504 | pdev->offset.x = ((pdev->view.x - pdev->image.x) / 2) & 0xFFFC; | ||
| 505 | pdev->offset.y = ((pdev->view.y - pdev->image.y) / 2) & 0xFFFE; | ||
| 506 | |||
| 507 | /* Fill buffers with gray or black */ | ||
| 508 | for (i = 0; i < MAX_IMAGES; i++) { | ||
| 509 | if (pdev->image_ptr[i] != NULL) | ||
| 510 | memset(pdev->image_ptr[i], filler, pdev->view.size); | ||
| 511 | } | ||
| 512 | } | ||
| 513 | |||
| 514 | |||
| 515 | |||
| 516 | /* BRIGHTNESS */ | 516 | /* BRIGHTNESS */ |
| 517 | 517 | ||
| 518 | int pwc_get_brightness(struct pwc_device *pdev) | 518 | int pwc_get_brightness(struct pwc_device *pdev) |
| @@ -949,7 +949,7 @@ int pwc_set_leds(struct pwc_device *pdev, int on_value, int off_value) | |||
| 949 | return SendControlMsg(SET_STATUS_CTL, LED_FORMATTER, 2); | 949 | return SendControlMsg(SET_STATUS_CTL, LED_FORMATTER, 2); |
| 950 | } | 950 | } |
| 951 | 951 | ||
| 952 | int pwc_get_leds(struct pwc_device *pdev, int *on_value, int *off_value) | 952 | static int pwc_get_leds(struct pwc_device *pdev, int *on_value, int *off_value) |
| 953 | { | 953 | { |
| 954 | unsigned char buf[2]; | 954 | unsigned char buf[2]; |
| 955 | int ret; | 955 | int ret; |
| @@ -1100,7 +1100,7 @@ static inline int pwc_mpt_set_angle(struct pwc_device *pdev, int pan, int tilt) | |||
| 1100 | unsigned char buf[4]; | 1100 | unsigned char buf[4]; |
| 1101 | 1101 | ||
| 1102 | /* set new relative angle; angles are expressed in degrees * 100, | 1102 | /* set new relative angle; angles are expressed in degrees * 100, |
| 1103 | but cam as .5 degree resolution, hence devide by 200. Also | 1103 | but cam as .5 degree resolution, hence divide by 200. Also |
| 1104 | the angle must be multiplied by 64 before it's send to | 1104 | the angle must be multiplied by 64 before it's send to |
| 1105 | the cam (??) | 1105 | the cam (??) |
| 1106 | */ | 1106 | */ |
