[alsa-devel] [PATCH 001b/001] snd-powermac: older kernel compatibility
Takashi Iwai
tiwai at suse.de
Wed Apr 16 18:57:06 CEST 2008
At Wed, 16 Apr 2008 19:53:14 +0300,
Risto Suominen wrote:
>
> From: Risto Suominen <Risto.Suominen at gmail.com>
>
> Allow to compile snd-powermac on older kernels.
>
> Signed-off-by: Risto Suominen <Risto.Suominen at gmail.com>
OK, applied both patches to alsa-driver HG tree.
Thanks!
Takashi
> ---
> Kernel version < 2.6.16
>
> --- ppc/pmac_old.c.orig 2008-02-05 11:23:23.000000000 +0200
> +++ ppc/pmac_old.c 2008-04-15 20:05:56.000000000 +0300
> @@ -997,12 +997,14 @@ static int __init snd_pmac_detect(struct
> chip->can_byte_swap = 0; /* FIXME: check this */
> chip->control_mask = MASK_IEPC | 0x11;/* disable IEE */
> break;
> +#ifdef SND_POWERMAC_SUPPORT_TOONIE
> case 0x3a:
> chip->num_freqs = ARRAY_SIZE(tumbler_freqs);
> chip->model = PMAC_TOONIE;
> chip->can_byte_swap = 0; /* FIXME: check this */
> chip->control_mask = MASK_IEPC | 0x11;/* disable IEE */
> break;
> +#endif
> }
> }
> prop = (unsigned int *)get_property(sound, "device-id", NULL);
> @@ -1019,6 +1021,10 @@ static int __init snd_pmac_detect(struct
> else {
> struct pci_dev *pdev = NULL;
>
> +#ifndef for_each_pci_dev
> +#define for_each_pci_dev(d) \
> + while ((d = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, d)) != NULL)
> +#endif
> for_each_pci_dev(pdev) {
> struct device_node *np = pci_device_to_OF_node(pdev);
> if (np && np == macio->of_node) {
> --- alsa-kernel/ppc/pmac.h.orig 2008-02-05 11:23:24.000000000 +0200
> +++ alsa-kernel/ppc/pmac.h 2008-03-31 23:45:36.000000000 +0300
> @@ -207,4 +207,11 @@
>
> int snd_pmac_add_automute(struct snd_pmac *chip);
>
> +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16)
> +#define of_device_is_compatible(dev, s) device_is_compatible(dev, s)
> +#define input_get_drvdata(dev) (dev->private)
> +#define i2c_smbus_write_i2c_block_data(client, cmd, len, vals) \
> + i2c_smbus_write_block_data(client, cmd, len, vals)
> +#endif
> +
> #endif /* __PMAC_H */
> --- acore/memory.c.orig 2008-02-05 11:23:23.000000000 +0200
> +++ acore/memory.c 2008-03-31 23:45:36.000000000 +0300
> @@ -21,6 +21,9 @@
> #ifndef __safe
> #define __safe
> #endif
> +#ifndef __bitwise
> +#define __bitwise
> +#endif
> #endif
>
> #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
> --- ppc/beep.patch.orig 2008-02-05 11:23:23.000000000 +0200
> +++ ppc/beep.patch 2008-03-31 23:45:37.000000000 +0300
> @@ -1,5 +1,5 @@
> ---- ../alsa-kernel/ppc/beep.c 2007-12-20 11:47:37.000000000 +0100
> -+++ beep.c 2007-12-20 12:23:31.000000000 +0100
> +--- ../alsa-kernel/ppc/beep.c 2008-02-05 11:23:24.000000000 +0200
> ++++ beep.c 2008-03-27 11:56:01.482564272 +0200
> @@ -1,3 +1,10 @@
> +#define __NO_VERSION__
> +#include "adriver.h"
> @@ -39,7 +39,18 @@
>
> beep->dev = input_dev;
> beep->buf = dmabuf;
> -@@ -263,7 +281,12 @@
> +@@ -256,14 +274,23 @@
> +
> + chip->beep = beep;
> +
> ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 15)
> + err = input_register_device(beep->dev);
> + if (err)
> + goto fail2;
> ++#else
> ++ input_register_device(beep->dev);
> ++#endif
> +
> return 0;
>
> fail2: snd_ctl_remove(chip->card, beep_ctl);
> @@ -53,14 +64,15 @@
> if (dmabuf)
> dma_free_coherent(&chip->pdev->dev, BEEP_BUFLEN * 4,
> dmabuf, beep->addr);
> -@@ -275,9 +298,15 @@
> +@@ -275,9 +302,16 @@
> {
> if (chip->beep) {
> input_unregister_device(chip->beep->dev);
> +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 15)
> + kfree(chip->beep->dev);
> -+#endif
> ++#else
> + input_free_device(chip->beep->dev);
> ++#endif
> dma_free_coherent(&chip->pdev->dev, BEEP_BUFLEN * 4,
> chip->beep->buf, chip->beep->addr);
> kfree(chip->beep);
More information about the Alsa-devel
mailing list