diff -Nur linux-2.5.5-old/sound/oss/cs4281/cs4281_wrapper.h linux-2.5.5/sound/oss/cs4281/cs4281_wrapper.h --- linux-2.5.5-old/sound/oss/cs4281/cs4281_wrapper.h Thu Jan 1 01:00:00 1970 +++ linux-2.5.5/sound/oss/cs4281/cs4281_wrapper.h Mon Feb 25 20:38:04 2002 @@ -0,0 +1,54 @@ +/******************************************************************************* +* +* "cs4281_wrapper.h" -- Cirrus Logic-Crystal CS4281 linux audio driver. +* +* Copyright (C) 2000,2001 Cirrus Logic Corp. +* -- tom woller (twoller@crystal.cirrus.com) or +* (audio@crystal.cirrus.com). +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +* +* 12/22/00 trw - new file. +* 04/18/01 trw - rework entire wrapper logic. +* +*******************************************************************************/ +#ifndef __CS4281_WRAPPER_H +#define __CS4281_WRAPPER_H + +/* 2.4.x wrapper */ +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,12) +static int cs4281_null_suspend(struct pci_dev *pcidev, u32 unused) { return 0; } +static int cs4281_null_resume(struct pci_dev *pcidev) { return 0; } +#else +#define no_llseek cs4281_llseek +static loff_t cs4281_llseek(struct file *file, loff_t offset, int origin) +{ + return -ESPIPE; +} +void cs4281_null_suspend(struct pci_dev *pcidev) { return; } +void cs4281_null_resume(struct pci_dev *pcidev) { return; } +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,3) +/* Some versions of 2.4.2 resolve pci_set_dma_mask and some do not... +* but 2.4.0 definitely does not +*/ +#define pci_set_dma_mask(dev,data) 0; +#else +#endif +#define cs4x_mem_map_reserve(page) mem_map_reserve(page) +#define cs4x_mem_map_unreserve(page) mem_map_unreserve(page) + +#endif /* #ifndef __CS4281_WRAPPER_H */ diff -Nur linux-2.5.5-old/sound/oss/cs4281/cs4281m.c linux-2.5.5/sound/oss/cs4281/cs4281m.c --- linux-2.5.5-old/sound/oss/cs4281/cs4281m.c Thu Mar 7 14:52:47 2002 +++ linux-2.5.5/sound/oss/cs4281/cs4281m.c Thu Mar 7 16:06:55 2002 @@ -98,6 +98,7 @@ int cs4281_suspend(struct cs4281_state *s); int cs4281_resume(struct cs4281_state *s); +#include "cs4281_wrapper-24.c" #include "cs4281_wrapper.h" #include "cs4281pm-24.h" diff -Nur linux-2.5.5-old/sound/oss/cs4281/cs4281pm-24.h linux-2.5.5/sound/oss/cs4281/cs4281pm-24.h --- linux-2.5.5-old/sound/oss/cs4281/cs4281pm-24.h Thu Jan 1 01:00:00 1970 +++ linux-2.5.5/sound/oss/cs4281/cs4281pm-24.h Mon Feb 25 20:38:04 2002 @@ -0,0 +1,67 @@ +/******************************************************************************* +* +* "cs4281pm-24.h" -- Cirrus Logic-Crystal CS4281 linux audio driver. +* +* Copyright (C) 2000,2001 Cirrus Logic Corp. +* -- tom woller (twoller@crystal.cirrus.com) or +* (audio@crystal.cirrus.com). +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +* +* 2001.04.05 trw - new file. +* +*******************************************************************************/ +#ifndef NOT_CS4281_PM +#include +#include +#include "cs4281pm.h" + +//#define CS4281_PCI_PM_SUPPORT_ENABLE 1 +#if CS4281_PCI_PM_SUPPORT_ENABLE +#define cs_pm_register(a, b, c) 0; +#define cs_pm_unregister_all(a) +/* +* for now (12/22/00) only enable the pm_register PM support. +* allow these table entries to be null. +*/ +#define CS4281_SUSPEND_TBL cs4281_suspend_tbl +#define CS4281_RESUME_TBL cs4281_resume_tbl +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,12) +static int cs4281_suspend_tbl(struct pci_dev *pcidev, u32 unused); +static int cs4281_resume_tbl(struct pci_dev *pcidev); +#else +void cs4281_suspend_tbl(struct pci_dev *pcidev); +void cs4281_resume_tbl(struct pci_dev *pcidev); +#endif //LINUX_VERSION +#else //CS4281_PCI_PM_SUPPORT_ENABLE +#ifdef CONFIG_PM +int cs4281_pm_callback(struct pm_dev *dev, pm_request_t rqst, void *data); +#define cs_pm_register(a, b, c) pm_register((a), (b), (c)); +#define cs_pm_unregister_all(a) pm_unregister_all((a)); +#define CS4281_SUSPEND_TBL cs4281_null_suspend +#define CS4281_RESUME_TBL cs4281_null_resume +#else +#define cs_pm_register(a, b, c) 0; +#define cs_pm_unregister_all(a) +#define CS4281_SUSPEND_TBL cs4281_null_suspend +#define CS4281_RESUME_TBL cs4281_null_resume +#endif //CONFIG_PM +#endif //CS4281_PCI_PM_SUPPORT_ENABLE +#else +#define cs_pm_register(a, b, c) 0; +#define cs_pm_unregister_all(a) +#define CS4281_SUSPEND_TBL cs4281_null_suspend +#define CS4281_RESUME_TBL cs4281_null_resume +#endif //NOT_CS4281_PM