diff options
author | Patrick Mochel <mochel@digitalimplant.org> | 2006-01-06 03:15:18 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-06 11:33:41 -0500 |
commit | 53052539f3e2b29ccaf2064b0d3b8cee51d05621 (patch) | |
tree | a3628d85d88b3527463a0eeff1d865b46bc17bc8 /sound | |
parent | 94661e7c33e6e3001be07d76d3a87eaa41dad3df (diff) |
[PATCH] oss: remove deprecated PM interface from maestro driver
This change removes the old, deprecated interface from the maestro driver,
including the pm_{,un}register() calls, the local storage of the pmdev object
and the reference to the old header files. This change is done to assist in
eradicating the users of the legacy interface so as to help facilitate the
removal of the interface itself.
The check_suspend() function and associated logic was not removed, even though
it is now unnecessary.
Note that this driver has been obsoleted by an ALSA equivalent.
Acked-by: Zach Brown <zab@zabbo.net>
Signed-off-by: Patrick Mochel <mochel@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/oss/maestro.c | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/sound/oss/maestro.c b/sound/oss/maestro.c index 3abd3541cbc7..f9ac5b16f61a 100644 --- a/sound/oss/maestro.c +++ b/sound/oss/maestro.c | |||
@@ -230,10 +230,6 @@ | |||
230 | #include <asm/page.h> | 230 | #include <asm/page.h> |
231 | #include <asm/uaccess.h> | 231 | #include <asm/uaccess.h> |
232 | 232 | ||
233 | #include <linux/pm.h> | ||
234 | #include <linux/pm_legacy.h> | ||
235 | static int maestro_pm_callback(struct pm_dev *dev, pm_request_t rqst, void *d); | ||
236 | |||
237 | #include "maestro.h" | 233 | #include "maestro.h" |
238 | 234 | ||
239 | static struct pci_driver maestro_pci_driver; | 235 | static struct pci_driver maestro_pci_driver; |
@@ -3404,7 +3400,6 @@ maestro_probe(struct pci_dev *pcidev,const struct pci_device_id *pdid) | |||
3404 | int i, ret; | 3400 | int i, ret; |
3405 | struct ess_card *card; | 3401 | struct ess_card *card; |
3406 | struct ess_state *ess; | 3402 | struct ess_state *ess; |
3407 | struct pm_dev *pmdev; | ||
3408 | int num = 0; | 3403 | int num = 0; |
3409 | 3404 | ||
3410 | /* when built into the kernel, we only print version if device is found */ | 3405 | /* when built into the kernel, we only print version if device is found */ |
@@ -3450,11 +3445,6 @@ maestro_probe(struct pci_dev *pcidev,const struct pci_device_id *pdid) | |||
3450 | memset(card, 0, sizeof(*card)); | 3445 | memset(card, 0, sizeof(*card)); |
3451 | card->pcidev = pcidev; | 3446 | card->pcidev = pcidev; |
3452 | 3447 | ||
3453 | pmdev = pm_register(PM_PCI_DEV, PM_PCI_ID(pcidev), | ||
3454 | maestro_pm_callback); | ||
3455 | if (pmdev) | ||
3456 | pmdev->data = card; | ||
3457 | |||
3458 | card->iobase = iobase; | 3448 | card->iobase = iobase; |
3459 | card->card_type = card_type; | 3449 | card->card_type = card_type; |
3460 | card->irq = pcidev->irq; | 3450 | card->irq = pcidev->irq; |
@@ -3670,7 +3660,6 @@ static int maestro_notifier(struct notifier_block *nb, unsigned long event, void | |||
3670 | static void cleanup_maestro(void) { | 3660 | static void cleanup_maestro(void) { |
3671 | M_printk("maestro: unloading\n"); | 3661 | M_printk("maestro: unloading\n"); |
3672 | pci_unregister_driver(&maestro_pci_driver); | 3662 | pci_unregister_driver(&maestro_pci_driver); |
3673 | pm_unregister_all(maestro_pm_callback); | ||
3674 | unregister_reboot_notifier(&maestro_nb); | 3663 | unregister_reboot_notifier(&maestro_nb); |
3675 | } | 3664 | } |
3676 | 3665 | ||
@@ -3691,143 +3680,5 @@ check_suspend(struct ess_card *card) | |||
3691 | current->state = TASK_RUNNING; | 3680 | current->state = TASK_RUNNING; |
3692 | } | 3681 | } |
3693 | 3682 | ||
3694 | static int | ||
3695 | maestro_suspend(struct ess_card *card) | ||
3696 | { | ||
3697 | unsigned long flags; | ||
3698 | int i,j; | ||
3699 | |||
3700 | spin_lock_irqsave(&card->lock,flags); /* over-kill */ | ||
3701 | |||
3702 | M_printk("maestro: apm in dev %p\n",card); | ||
3703 | |||
3704 | /* we have to read from the apu regs, need | ||
3705 | to power it up */ | ||
3706 | maestro_power(card,ACPI_D0); | ||
3707 | |||
3708 | for(i=0;i<NR_DSPS;i++) { | ||
3709 | struct ess_state *s = &card->channels[i]; | ||
3710 | |||
3711 | if(s->dev_audio == -1) | ||
3712 | continue; | ||
3713 | |||
3714 | M_printk("maestro: stopping apus for device %d\n",i); | ||
3715 | stop_dac(s); | ||
3716 | stop_adc(s); | ||
3717 | for(j=0;j<6;j++) | ||
3718 | card->apu_map[s->apu[j]][5]=apu_get_register(s,j,5); | ||
3719 | |||
3720 | } | ||
3721 | |||
3722 | /* get rid of interrupts? */ | ||
3723 | if( card->dsps_open > 0) | ||
3724 | stop_bob(&card->channels[0]); | ||
3725 | |||
3726 | card->in_suspend++; | ||
3727 | |||
3728 | spin_unlock_irqrestore(&card->lock,flags); | ||
3729 | |||
3730 | /* we trust in the bios to power down the chip on suspend. | ||
3731 | * XXX I'm also not sure that in_suspend will protect | ||
3732 | * against all reg accesses from here on out. | ||
3733 | */ | ||
3734 | return 0; | ||
3735 | } | ||
3736 | static int | ||
3737 | maestro_resume(struct ess_card *card) | ||
3738 | { | ||
3739 | unsigned long flags; | ||
3740 | int i; | ||
3741 | |||
3742 | spin_lock_irqsave(&card->lock,flags); /* over-kill */ | ||
3743 | |||
3744 | card->in_suspend = 0; | ||
3745 | |||
3746 | M_printk("maestro: resuming card at %p\n",card); | ||
3747 | |||
3748 | /* restore all our config */ | ||
3749 | maestro_config(card); | ||
3750 | /* need to restore the base pointers.. */ | ||
3751 | if(card->dmapages) | ||
3752 | set_base_registers(&card->channels[0],card->dmapages); | ||
3753 | |||
3754 | mixer_push_state(card); | ||
3755 | |||
3756 | /* set each channels' apu control registers before | ||
3757 | * restoring audio | ||
3758 | */ | ||
3759 | for(i=0;i<NR_DSPS;i++) { | ||
3760 | struct ess_state *s = &card->channels[i]; | ||
3761 | int chan,reg; | ||
3762 | |||
3763 | if(s->dev_audio == -1) | ||
3764 | continue; | ||
3765 | |||
3766 | for(chan = 0 ; chan < 6 ; chan++) { | ||
3767 | wave_set_register(s,s->apu[chan]<<3,s->apu_base[chan]); | ||
3768 | for(reg = 1 ; reg < NR_APU_REGS ; reg++) | ||
3769 | apu_set_register(s,chan,reg,s->card->apu_map[s->apu[chan]][reg]); | ||
3770 | } | ||
3771 | for(chan = 0 ; chan < 6 ; chan++) | ||
3772 | apu_set_register(s,chan,0,s->card->apu_map[s->apu[chan]][0] & 0xFF0F); | ||
3773 | } | ||
3774 | |||
3775 | /* now we flip on the music */ | ||
3776 | |||
3777 | if( card->dsps_open <= 0) { | ||
3778 | /* this card's idle */ | ||
3779 | maestro_power(card,ACPI_D2); | ||
3780 | } else { | ||
3781 | /* ok, we're actually playing things on | ||
3782 | this card */ | ||
3783 | maestro_power(card,ACPI_D0); | ||
3784 | start_bob(&card->channels[0]); | ||
3785 | for(i=0;i<NR_DSPS;i++) { | ||
3786 | struct ess_state *s = &card->channels[i]; | ||
3787 | |||
3788 | /* these use the apu_mode, and can handle | ||
3789 | spurious calls */ | ||
3790 | start_dac(s); | ||
3791 | start_adc(s); | ||
3792 | } | ||
3793 | } | ||
3794 | |||
3795 | spin_unlock_irqrestore(&card->lock,flags); | ||
3796 | |||
3797 | /* all right, we think things are ready, | ||
3798 | wake up people who were using the device | ||
3799 | when we suspended */ | ||
3800 | wake_up(&(card->suspend_queue)); | ||
3801 | |||
3802 | return 0; | ||
3803 | } | ||
3804 | |||
3805 | int | ||
3806 | maestro_pm_callback(struct pm_dev *dev, pm_request_t rqst, void *data) | ||
3807 | { | ||
3808 | struct ess_card *card = (struct ess_card*) dev->data; | ||
3809 | |||
3810 | if ( ! card ) goto out; | ||
3811 | |||
3812 | M_printk("maestro: pm event 0x%x received for card %p\n", rqst, card); | ||
3813 | |||
3814 | switch (rqst) { | ||
3815 | case PM_SUSPEND: | ||
3816 | maestro_suspend(card); | ||
3817 | break; | ||
3818 | case PM_RESUME: | ||
3819 | maestro_resume(card); | ||
3820 | break; | ||
3821 | /* | ||
3822 | * we'd also like to find out about | ||
3823 | * power level changes because some biosen | ||
3824 | * do mean things to the maestro when they | ||
3825 | * change their power state. | ||
3826 | */ | ||
3827 | } | ||
3828 | out: | ||
3829 | return 0; | ||
3830 | } | ||
3831 | |||
3832 | module_init(init_maestro); | 3683 | module_init(init_maestro); |
3833 | module_exit(cleanup_maestro); | 3684 | module_exit(cleanup_maestro); |