|
48 | 48 | #include <linux/acpi.h> |
49 | 49 | #include <linux/slab.h> |
50 | 50 | #include <linux/sonypi.h> |
51 | | -#include <linux/sony-laptop.h> |
52 | 51 | #include <linux/rfkill.h> |
53 | 52 | #ifdef CONFIG_SONYPI_COMPAT |
54 | 53 | #include <linux/poll.h> |
@@ -3621,22 +3620,6 @@ static u8 sony_pic_call2(u8 dev, u8 fn) |
3621 | 3620 | return v1; |
3622 | 3621 | } |
3623 | 3622 |
|
3624 | | -static u8 sony_pic_call3(u8 dev, u8 fn, u8 v) |
3625 | | -{ |
3626 | | - u8 v1; |
3627 | | - |
3628 | | - wait_on_command(inb_p(spic_dev.cur_ioport->io1.minimum + 4) & 2, ITERATIONS_LONG); |
3629 | | - outb(dev, spic_dev.cur_ioport->io1.minimum + 4); |
3630 | | - wait_on_command(inb_p(spic_dev.cur_ioport->io1.minimum + 4) & 2, ITERATIONS_LONG); |
3631 | | - outb(fn, spic_dev.cur_ioport->io1.minimum); |
3632 | | - wait_on_command(inb_p(spic_dev.cur_ioport->io1.minimum + 4) & 2, ITERATIONS_LONG); |
3633 | | - outb(v, spic_dev.cur_ioport->io1.minimum); |
3634 | | - v1 = inb_p(spic_dev.cur_ioport->io1.minimum); |
3635 | | - dprintk("sony_pic_call3(0x%.2x - 0x%.2x - 0x%.2x): 0x%.4x\n", |
3636 | | - dev, fn, v, v1); |
3637 | | - return v1; |
3638 | | -} |
3639 | | - |
3640 | 3623 | /* |
3641 | 3624 | * minidrivers for SPIC models |
3642 | 3625 | */ |
@@ -3724,156 +3707,6 @@ static void sony_pic_detect_device_type(struct sony_pic_dev *dev) |
3724 | 3707 | dev->model == SONYPI_DEVICE_TYPE2 ? 2 : 3); |
3725 | 3708 | } |
3726 | 3709 |
|
3727 | | -/* camera tests and poweron/poweroff */ |
3728 | | -#define SONYPI_CAMERA_PICTURE 5 |
3729 | | -#define SONYPI_CAMERA_CONTROL 0x10 |
3730 | | - |
3731 | | -#define SONYPI_CAMERA_BRIGHTNESS 0 |
3732 | | -#define SONYPI_CAMERA_CONTRAST 1 |
3733 | | -#define SONYPI_CAMERA_HUE 2 |
3734 | | -#define SONYPI_CAMERA_COLOR 3 |
3735 | | -#define SONYPI_CAMERA_SHARPNESS 4 |
3736 | | - |
3737 | | -#define SONYPI_CAMERA_EXPOSURE_MASK 0xC |
3738 | | -#define SONYPI_CAMERA_WHITE_BALANCE_MASK 0x3 |
3739 | | -#define SONYPI_CAMERA_PICTURE_MODE_MASK 0x30 |
3740 | | -#define SONYPI_CAMERA_MUTE_MASK 0x40 |
3741 | | - |
3742 | | -/* the rest don't need a loop until not 0xff */ |
3743 | | -#define SONYPI_CAMERA_AGC 6 |
3744 | | -#define SONYPI_CAMERA_AGC_MASK 0x30 |
3745 | | -#define SONYPI_CAMERA_SHUTTER_MASK 0x7 |
3746 | | - |
3747 | | -#define SONYPI_CAMERA_SHUTDOWN_REQUEST 7 |
3748 | | -#define SONYPI_CAMERA_CONTROL 0x10 |
3749 | | - |
3750 | | -#define SONYPI_CAMERA_STATUS 7 |
3751 | | -#define SONYPI_CAMERA_STATUS_READY 0x2 |
3752 | | -#define SONYPI_CAMERA_STATUS_POSITION 0x4 |
3753 | | - |
3754 | | -#define SONYPI_DIRECTION_BACKWARDS 0x4 |
3755 | | - |
3756 | | -#define SONYPI_CAMERA_REVISION 8 |
3757 | | -#define SONYPI_CAMERA_ROMVERSION 9 |
3758 | | - |
3759 | | -static int __sony_pic_camera_ready(void) |
3760 | | -{ |
3761 | | - u8 v; |
3762 | | - |
3763 | | - v = sony_pic_call2(0x8f, SONYPI_CAMERA_STATUS); |
3764 | | - return (v != 0xff && (v & SONYPI_CAMERA_STATUS_READY)); |
3765 | | -} |
3766 | | - |
3767 | | -static int __sony_pic_camera_off(void) |
3768 | | -{ |
3769 | | - if (!camera) { |
3770 | | - pr_warn("camera control not enabled\n"); |
3771 | | - return -ENODEV; |
3772 | | - } |
3773 | | - |
3774 | | - wait_on_command(sony_pic_call3(0x90, SONYPI_CAMERA_PICTURE, |
3775 | | - SONYPI_CAMERA_MUTE_MASK), |
3776 | | - ITERATIONS_SHORT); |
3777 | | - |
3778 | | - if (spic_dev.camera_power) { |
3779 | | - sony_pic_call2(0x91, 0); |
3780 | | - spic_dev.camera_power = 0; |
3781 | | - } |
3782 | | - return 0; |
3783 | | -} |
3784 | | - |
3785 | | -static int __sony_pic_camera_on(void) |
3786 | | -{ |
3787 | | - int i, j, x; |
3788 | | - |
3789 | | - if (!camera) { |
3790 | | - pr_warn("camera control not enabled\n"); |
3791 | | - return -ENODEV; |
3792 | | - } |
3793 | | - |
3794 | | - if (spic_dev.camera_power) |
3795 | | - return 0; |
3796 | | - |
3797 | | - for (j = 5; j > 0; j--) { |
3798 | | - |
3799 | | - for (x = 0; x < 100 && sony_pic_call2(0x91, 0x1); x++) |
3800 | | - msleep(10); |
3801 | | - sony_pic_call1(0x93); |
3802 | | - |
3803 | | - for (i = 400; i > 0; i--) { |
3804 | | - if (__sony_pic_camera_ready()) |
3805 | | - break; |
3806 | | - msleep(10); |
3807 | | - } |
3808 | | - if (i) |
3809 | | - break; |
3810 | | - } |
3811 | | - |
3812 | | - if (j == 0) { |
3813 | | - pr_warn("failed to power on camera\n"); |
3814 | | - return -ENODEV; |
3815 | | - } |
3816 | | - |
3817 | | - wait_on_command(sony_pic_call3(0x90, SONYPI_CAMERA_CONTROL, |
3818 | | - 0x5a), |
3819 | | - ITERATIONS_SHORT); |
3820 | | - |
3821 | | - spic_dev.camera_power = 1; |
3822 | | - return 0; |
3823 | | -} |
3824 | | - |
3825 | | -/* External camera command (exported to the motion eye v4l driver) */ |
3826 | | -int sony_pic_camera_command(int command, u8 value) |
3827 | | -{ |
3828 | | - if (!camera) |
3829 | | - return -EIO; |
3830 | | - |
3831 | | - mutex_lock(&spic_dev.lock); |
3832 | | - |
3833 | | - switch (command) { |
3834 | | - case SONY_PIC_COMMAND_SETCAMERA: |
3835 | | - if (value) |
3836 | | - __sony_pic_camera_on(); |
3837 | | - else |
3838 | | - __sony_pic_camera_off(); |
3839 | | - break; |
3840 | | - case SONY_PIC_COMMAND_SETCAMERABRIGHTNESS: |
3841 | | - wait_on_command(sony_pic_call3(0x90, SONYPI_CAMERA_BRIGHTNESS, value), |
3842 | | - ITERATIONS_SHORT); |
3843 | | - break; |
3844 | | - case SONY_PIC_COMMAND_SETCAMERACONTRAST: |
3845 | | - wait_on_command(sony_pic_call3(0x90, SONYPI_CAMERA_CONTRAST, value), |
3846 | | - ITERATIONS_SHORT); |
3847 | | - break; |
3848 | | - case SONY_PIC_COMMAND_SETCAMERAHUE: |
3849 | | - wait_on_command(sony_pic_call3(0x90, SONYPI_CAMERA_HUE, value), |
3850 | | - ITERATIONS_SHORT); |
3851 | | - break; |
3852 | | - case SONY_PIC_COMMAND_SETCAMERACOLOR: |
3853 | | - wait_on_command(sony_pic_call3(0x90, SONYPI_CAMERA_COLOR, value), |
3854 | | - ITERATIONS_SHORT); |
3855 | | - break; |
3856 | | - case SONY_PIC_COMMAND_SETCAMERASHARPNESS: |
3857 | | - wait_on_command(sony_pic_call3(0x90, SONYPI_CAMERA_SHARPNESS, value), |
3858 | | - ITERATIONS_SHORT); |
3859 | | - break; |
3860 | | - case SONY_PIC_COMMAND_SETCAMERAPICTURE: |
3861 | | - wait_on_command(sony_pic_call3(0x90, SONYPI_CAMERA_PICTURE, value), |
3862 | | - ITERATIONS_SHORT); |
3863 | | - break; |
3864 | | - case SONY_PIC_COMMAND_SETCAMERAAGC: |
3865 | | - wait_on_command(sony_pic_call3(0x90, SONYPI_CAMERA_AGC, value), |
3866 | | - ITERATIONS_SHORT); |
3867 | | - break; |
3868 | | - default: |
3869 | | - pr_err("sony_pic_camera_command invalid: %d\n", command); |
3870 | | - break; |
3871 | | - } |
3872 | | - mutex_unlock(&spic_dev.lock); |
3873 | | - return 0; |
3874 | | -} |
3875 | | -EXPORT_SYMBOL(sony_pic_camera_command); |
3876 | | - |
3877 | 3710 | /* gprs/edge modem (SZ460N and SZ210P), thanks to Joshua Wise */ |
3878 | 3711 | static void __sony_pic_set_wwanpower(u8 state) |
3879 | 3712 | { |
|
0 commit comments