Commit ed9ce517 authored by Stelian Pop's avatar Stelian Pop Committed by Linus Torvalds

[PATCH] meye suspend/resume capabilities

This adds suspend/resume capabilities to the meye driver.
parent 90c25ebb
Vaio Picturebook Motion Eye Camera Driver Readme Vaio Picturebook Motion Eye Camera Driver Readme
------------------------------------------------ ------------------------------------------------
Copyright (C) 2001-2002 Stelian Pop <stelian@popies.net> Copyright (C) 2001-2003 Stelian Pop <stelian@popies.net>
Copyright (C) 2001-2002 Alcôve <www.alcove.com> Copyright (C) 2001-2002 Alcôve <www.alcove.com>
Copyright (C) 2000 Andrew Tridgell <tridge@samba.org> Copyright (C) 2000 Andrew Tridgell <tridge@samba.org>
......
/* /*
* Motion Eye video4linux driver for Sony Vaio PictureBook * Motion Eye video4linux driver for Sony Vaio PictureBook
* *
* Copyright (C) 2001-2002 Stelian Pop <stelian@popies.net> * Copyright (C) 2001-2003 Stelian Pop <stelian@popies.net>
* *
* Copyright (C) 2001-2002 Alcve <www.alcove.com> * Copyright (C) 2001-2002 Alcve <www.alcove.com>
* *
...@@ -1225,6 +1225,42 @@ static struct video_device meye_template = { ...@@ -1225,6 +1225,42 @@ static struct video_device meye_template = {
.fops = &meye_fops, .fops = &meye_fops,
}; };
#ifdef CONFIG_PM
static int meye_suspend(struct pci_dev *pdev, u32 state)
{
pci_save_state(pdev, meye.pm_state);
meye.pm_mchip_mode = meye.mchip_mode;
mchip_hic_stop();
mchip_set(MCHIP_MM_INTA, 0x0);
return 0;
}
static int meye_resume(struct pci_dev *pdev)
{
pci_restore_state(pdev, meye.pm_state);
pci_write_config_word(meye.mchip_dev, MCHIP_PCI_SOFTRESET_SET, 1);
mchip_delay(MCHIP_HIC_CMD, 0);
mchip_delay(MCHIP_HIC_STATUS, MCHIP_HIC_STATUS_IDLE);
wait_ms(1);
mchip_set(MCHIP_VRJ_SOFT_RESET, 1);
wait_ms(1);
mchip_set(MCHIP_MM_PCI_MODE, 5);
wait_ms(1);
mchip_set(MCHIP_MM_INTA, MCHIP_MM_INTA_HIC_1_MASK);
switch (meye.pm_mchip_mode) {
case MCHIP_HIC_MODE_CONT_OUT:
mchip_continuous_start();
break;
case MCHIP_HIC_MODE_CONT_COMP:
mchip_cont_compression_start();
break;
}
return 0;
}
#endif
static int __devinit meye_probe(struct pci_dev *pcidev, static int __devinit meye_probe(struct pci_dev *pcidev,
const struct pci_device_id *ent) { const struct pci_device_id *ent) {
int ret; int ret;
...@@ -1391,6 +1427,10 @@ static struct pci_driver meye_driver = { ...@@ -1391,6 +1427,10 @@ static struct pci_driver meye_driver = {
.id_table = meye_pci_tbl, .id_table = meye_pci_tbl,
.probe = meye_probe, .probe = meye_probe,
.remove = __devexit_p(meye_remove), .remove = __devexit_p(meye_remove),
#ifdef CONFIG_PM
.suspend = meye_suspend,
.resume = meye_resume,
#endif
}; };
static int __init meye_init_module(void) { static int __init meye_init_module(void) {
......
/* /*
* Motion Eye video4linux driver for Sony Vaio PictureBook * Motion Eye video4linux driver for Sony Vaio PictureBook
* *
* Copyright (C) 2001-2002 Stelian Pop <stelian@popies.net> * Copyright (C) 2001-2003 Stelian Pop <stelian@popies.net>
* *
* Copyright (C) 2001-2002 Alcve <www.alcove.com> * Copyright (C) 2001-2002 Alcve <www.alcove.com>
* *
...@@ -31,7 +31,13 @@ ...@@ -31,7 +31,13 @@
#define _MEYE_PRIV_H_ #define _MEYE_PRIV_H_
#define MEYE_DRIVER_MAJORVERSION 1 #define MEYE_DRIVER_MAJORVERSION 1
#define MEYE_DRIVER_MINORVERSION 5 #define MEYE_DRIVER_MINORVERSION 6
#include <linux/config.h>
#include <linux/types.h>
#include <linux/pci.h>
#include <linux/sonypi.h>
#include <linux/meye.h>
/****************************************************************************/ /****************************************************************************/
/* Motion JPEG chip registers */ /* Motion JPEG chip registers */
...@@ -309,6 +315,10 @@ struct meye { ...@@ -309,6 +315,10 @@ struct meye {
struct video_device video_dev; /* video device parameters */ struct video_device video_dev; /* video device parameters */
struct video_picture picture; /* video picture parameters */ struct video_picture picture; /* video picture parameters */
struct meye_params params; /* additional parameters */ struct meye_params params; /* additional parameters */
#ifdef CONFIG_PM
u32 pm_state[16]; /* PCI configuration space */
u8 pm_mchip_mode; /* old mchip mode */
#endif
}; };
#endif #endif
/* /*
* Motion Eye video4linux driver for Sony Vaio PictureBook * Motion Eye video4linux driver for Sony Vaio PictureBook
* *
* Copyright (C) 2001-2002 Stelian Pop <stelian@popies.net> * Copyright (C) 2001-2003 Stelian Pop <stelian@popies.net>
* *
* Copyright (C) 2001-2002 Alcve <www.alcove.com> * Copyright (C) 2001-2002 Alcve <www.alcove.com>
* *
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment