All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Tomasz Chiliński" <tomasz.chilinski@chilan.com>
To: bluez-devel@lists.sourceforge.net
Subject: [Bluez-devel] kernel 2.6.21 btsco 0.50 patch
Date: Fri, 4 May 2007 10:49:17 +0200	[thread overview]
Message-ID: <20070504084720.M21573@chilan.com> (raw)
In-Reply-To: <1178260119.25425.12.camel@violet>

[-- Attachment #1: Type: text/plain, Size: 317 bytes --]

Hello.

There are minor problems with btsco kernel module with linux versions
above 2.6.20.x, for now with 2.6.21.x.
The attachment is a solution for all problems.
PS. I have also made diff with typedefs taken from kernel <=2.6.20.x,
but I think we should avoid include files dependencies...

Bests, Tomasz Chilinski

[-- Attachment #2: btsco-0.50-2.6.21-withouttypedefs.diff --]
[-- Type: application/octet-stream, Size: 12560 bytes --]

diff -uNr btsco-0.50.orig/kernel/btsco.c btsco-0.50/kernel/btsco.c
--- btsco-0.50.orig/kernel/btsco.c	2007-05-03 22:49:56.000000000 +0200
+++ btsco-0.50/kernel/btsco.c	2007-05-03 23:28:36.332990913 +0200
@@ -124,13 +128,13 @@
 } snd_card_bt_sco_info_t;
 
 typedef struct snd_card_bt_sco {
-	snd_card_t *card;
+	struct snd_card *card;
 	spinlock_t mixer_lock;
 	int mixer_volume[MIXER_ADDR_LAST + 1];
 #ifdef DYNAMIC_COMPRESSION
-	snd_kcontrol_t *mixer_controls[MIXER_ADDR_LAST + 2 + 1];	/* also loopback and agc */
+	struct snd_kcontrol *mixer_controls[MIXER_ADDR_LAST + 2 + 1];	/* also loopback and agc */
 #else
-	snd_kcontrol_t *mixer_controls[MIXER_ADDR_LAST + 2 ];	/* also loopback */
+	struct snd_kcontrol *mixer_controls[MIXER_ADDR_LAST + 2 ];	/* also loopback */
 #endif
 	volatile int loopback;
 #ifdef DYNAMIC_COMPRESSION
@@ -168,15 +172,15 @@
 	unsigned int pcm_bps;	/* bytes per second */
 	unsigned int pcm_irq_pos;	/* IRQ position */
 	unsigned int pcm_buf_pos;	/* position in buffer */
-	snd_pcm_substream_t *substream;
+	struct snd_pcm_substream *substream;
 } snd_card_bt_sco_pcm_t;
 
-static snd_card_t *snd_bt_sco_cards[SNDRV_CARDS] = SNDRV_DEFAULT_PTR;
+static struct snd_card *snd_bt_sco_cards[SNDRV_CARDS] = SNDRV_DEFAULT_PTR;
 
-static int snd_card_bt_sco_playback_trigger(snd_pcm_substream_t *
+static int snd_card_bt_sco_playback_trigger(struct snd_pcm_substream *
 					    substream, int cmd)
 {
-	snd_pcm_runtime_t *runtime = substream->runtime;
+	struct snd_pcm_runtime *runtime = substream->runtime;
 	snd_card_bt_sco_pcm_t *bspcm = runtime->private_data;
 	snd_card_bt_sco_t *bt_sco = snd_pcm_substream_chip(substream);
 
@@ -194,10 +198,10 @@
 	return 0;
 }
 
-static int snd_card_bt_sco_capture_trigger(snd_pcm_substream_t *
+static int snd_card_bt_sco_capture_trigger(struct snd_pcm_substream *
 					   substream, int cmd)
 {
-	snd_pcm_runtime_t *runtime = substream->runtime;
+	struct snd_pcm_runtime *runtime = substream->runtime;
 	snd_card_bt_sco_pcm_t *bspcm = runtime->private_data;
 	snd_card_bt_sco_t *bt_sco = snd_pcm_substream_chip(substream);
 
@@ -215,9 +219,9 @@
 	return 0;
 }
 
-static int snd_card_bt_sco_pcm_prepare(snd_pcm_substream_t * substream)
+static int snd_card_bt_sco_pcm_prepare(struct snd_pcm_substream * substream)
 {
-	snd_pcm_runtime_t *runtime = substream->runtime;
+	struct snd_pcm_runtime *runtime = substream->runtime;
 	snd_card_bt_sco_pcm_t *bspcm = runtime->private_data;
 	unsigned int bps;
 
@@ -236,12 +240,12 @@
 	return 0;
 }
 
-static int snd_card_bt_sco_playback_prepare(snd_pcm_substream_t * substream)
+static int snd_card_bt_sco_playback_prepare(struct snd_pcm_substream * substream)
 {
 	return snd_card_bt_sco_pcm_prepare(substream);
 }
 
-static int snd_card_bt_sco_capture_prepare(snd_pcm_substream_t * substream)
+static int snd_card_bt_sco_capture_prepare(struct snd_pcm_substream * substream)
 {
 	dprintk("capture_prepare\n");
 	return snd_card_bt_sco_pcm_prepare(substream);
@@ -311,24 +315,24 @@
 }
 
 static snd_pcm_uframes_t
-snd_card_bt_sco_playback_pointer(snd_pcm_substream_t * substream)
+snd_card_bt_sco_playback_pointer(struct snd_pcm_substream * substream)
 {
-	snd_pcm_runtime_t *runtime = substream->runtime;
+	struct snd_pcm_runtime *runtime = substream->runtime;
 	snd_card_bt_sco_pcm_t *bspcm = runtime->private_data;
 
 	return bytes_to_frames(runtime, bspcm->pcm_buf_pos);
 }
 
 static snd_pcm_uframes_t
-snd_card_bt_sco_capture_pointer(snd_pcm_substream_t * substream)
+snd_card_bt_sco_capture_pointer(struct snd_pcm_substream * substream)
 {
-	snd_pcm_runtime_t *runtime = substream->runtime;
+	struct snd_pcm_runtime *runtime = substream->runtime;
 	snd_card_bt_sco_pcm_t *bspcm = runtime->private_data;
 
 	return bytes_to_frames(runtime, bspcm->pcm_buf_pos);
 }
 
-static snd_pcm_hardware_t snd_card_bt_sco_playback = {
+static struct snd_pcm_hardware snd_card_bt_sco_playback = {
 	.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 		 SNDRV_PCM_INFO_MMAP_VALID),
 	.formats = SNDRV_PCM_FMTBIT_S16_LE,
@@ -345,7 +349,7 @@
 	.fifo_size = 0,
 };
 
-static snd_pcm_hardware_t snd_card_bt_sco_capture = {
+static struct snd_pcm_hardware snd_card_bt_sco_capture = {
 	.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 		 SNDRV_PCM_INFO_MMAP_VALID),
 	.formats = SNDRV_PCM_FMTBIT_S16_LE,
@@ -362,15 +366,15 @@
 	.fifo_size = 0,
 };
 
-static void snd_card_bt_sco_runtime_free(snd_pcm_runtime_t * runtime)
+static void snd_card_bt_sco_runtime_free(struct snd_pcm_runtime * runtime)
 {
 	snd_card_bt_sco_pcm_t *bspcm = runtime->private_data;
 	kfree(bspcm);
 }
 
-static int snd_card_bt_sco_playback_open(snd_pcm_substream_t * substream)
+static int snd_card_bt_sco_playback_open(struct snd_pcm_substream * substream)
 {
-	snd_pcm_runtime_t *runtime = substream->runtime;
+	struct snd_pcm_runtime *runtime = substream->runtime;
 	snd_card_bt_sco_pcm_t *bspcm;
 	snd_card_bt_sco_t *bt_sco = snd_pcm_substream_chip(substream);
 
@@ -401,9 +405,9 @@
 	return 0;
 }
 
-static int snd_card_bt_sco_capture_open(snd_pcm_substream_t * substream)
+static int snd_card_bt_sco_capture_open(struct snd_pcm_substream * substream)
 {
-	snd_pcm_runtime_t *runtime = substream->runtime;
+	struct snd_pcm_runtime *runtime = substream->runtime;
 	snd_card_bt_sco_pcm_t *bspcm;
 	snd_card_bt_sco_t *bt_sco = snd_pcm_substream_chip(substream);
 
@@ -435,9 +439,9 @@
 	return 0;
 }
 
-static int snd_card_bt_sco_playback_close(snd_pcm_substream_t * substream)
+static int snd_card_bt_sco_playback_close(struct snd_pcm_substream * substream)
 {
-	snd_pcm_runtime_t *runtime = substream->runtime;
+	struct snd_pcm_runtime *runtime = substream->runtime;
 	snd_card_bt_sco_t *bt_sco = snd_pcm_substream_chip(substream);
 
 	snd_assert(bt_sco->playback == NULL,;
@@ -457,9 +461,9 @@
 	return 0;
 }
 
-static int snd_card_bt_sco_capture_close(snd_pcm_substream_t * substream)
+static int snd_card_bt_sco_capture_close(struct snd_pcm_substream * substream)
 {
-	snd_pcm_runtime_t *runtime = substream->runtime;
+	struct snd_pcm_runtime *runtime = substream->runtime;
 	struct snd_card_bt_sco *bt_sco =
 	    (struct snd_card_bt_sco *)substream->private_data;
 
@@ -480,7 +484,7 @@
 	return 0;
 }
 
-static snd_pcm_ops_t snd_card_bt_sco_playback_ops = {
+static struct snd_pcm_ops snd_card_bt_sco_playback_ops = {
 	.open = snd_card_bt_sco_playback_open,
 	.close = snd_card_bt_sco_playback_close,
 	.ioctl = snd_pcm_lib_ioctl,
@@ -489,7 +493,7 @@
 	.pointer = snd_card_bt_sco_playback_pointer,
 };
 
-static snd_pcm_ops_t snd_card_bt_sco_capture_ops = {
+static struct snd_pcm_ops snd_card_bt_sco_capture_ops = {
 	.open = snd_card_bt_sco_capture_open,
 	.close = snd_card_bt_sco_capture_close,
 	.ioctl = snd_pcm_lib_ioctl,
@@ -500,7 +504,7 @@
 
 static int __init snd_card_bt_sco_pcm(snd_card_bt_sco_t * bt_sco)
 {
-	snd_pcm_t *pcm;
+	struct snd_pcm *pcm;
 	int err;
 
 	if ((err =
@@ -522,8 +526,8 @@
                                 .get = snd_bt_sco_volume_get, .put = snd_bt_sco_volume_put, \
                                                                         .private_value = addr }
 
-static int snd_bt_sco_volume_info(snd_kcontrol_t * kcontrol,
-				  snd_ctl_elem_info_t * uinfo)
+static int snd_bt_sco_volume_info(struct snd_kcontrol * kcontrol,
+				  struct snd_ctl_elem_info * uinfo)
 {
 	uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
 	uinfo->count = 1;
@@ -532,8 +536,8 @@
 	return 0;
 }
 
-static int snd_bt_sco_volume_get(snd_kcontrol_t * kcontrol,
-				 snd_ctl_elem_value_t * ucontrol)
+static int snd_bt_sco_volume_get(struct snd_kcontrol * kcontrol,
+				 struct snd_ctl_elem_value * ucontrol)
 {
 	snd_card_bt_sco_t *bt_sco = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
@@ -545,8 +549,8 @@
 	return 0;
 }
 
-static int snd_bt_sco_volume_put(snd_kcontrol_t * kcontrol,
-				 snd_ctl_elem_value_t * ucontrol)
+static int snd_bt_sco_volume_put(struct snd_kcontrol * kcontrol,
+				 struct snd_ctl_elem_value * ucontrol)
 {
 	snd_card_bt_sco_t *bt_sco = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
@@ -571,8 +575,8 @@
 	return changed;
 }
 
-static int snd_bt_sco_boolean_info(snd_kcontrol_t * kcontrol,
-				   snd_ctl_elem_info_t * uinfo)
+static int snd_bt_sco_boolean_info(struct snd_kcontrol * kcontrol,
+				   struct snd_ctl_elem_info * uinfo)
 {
 	uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
 	uinfo->count = 1;
@@ -581,8 +585,8 @@
 	return 0;
 }
 
-static int snd_bt_sco_loopback_get(snd_kcontrol_t * kcontrol,
-				   snd_ctl_elem_value_t * ucontrol)
+static int snd_bt_sco_loopback_get(struct snd_kcontrol * kcontrol,
+				   struct snd_ctl_elem_value * ucontrol)
 {
 	snd_card_bt_sco_t *bt_sco = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
@@ -593,8 +597,8 @@
 	return 0;
 }
 
-static int snd_bt_sco_loopback_put(snd_kcontrol_t * kcontrol,
-				   snd_ctl_elem_value_t * ucontrol)
+static int snd_bt_sco_loopback_put(struct snd_kcontrol * kcontrol,
+				   struct snd_ctl_elem_value * ucontrol)
 {
 	snd_card_bt_sco_t *bt_sco = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
@@ -611,8 +615,8 @@
 }
 
 #ifdef DYNAMIC_COMPRESSION
-static int snd_bt_sco_agc_get(snd_kcontrol_t * kcontrol,
-				   snd_ctl_elem_value_t * ucontrol)
+static int snd_bt_sco_agc_get(struct snd_kcontrol * kcontrol,
+				   struct snd_ctl_elem_value * ucontrol)
 {
 	snd_card_bt_sco_t *bt_sco = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
@@ -623,8 +627,8 @@
 	return 0;
 }
 
-static int snd_bt_sco_agc_put(snd_kcontrol_t * kcontrol,
-				   snd_ctl_elem_value_t * ucontrol)
+static int snd_bt_sco_agc_put(struct snd_kcontrol * kcontrol,
+				   struct snd_ctl_elem_value * ucontrol)
 {
 	snd_card_bt_sco_t *bt_sco = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
@@ -641,9 +645,9 @@
 }
 #endif
 
-#define BT_SCO_CONTROLS (sizeof(snd_bt_sco_controls)/sizeof(snd_kcontrol_new_t))
+#define BT_SCO_CONTROLS (sizeof(snd_bt_sco_controls)/sizeof(struct snd_kcontrol_new))
 
-static snd_kcontrol_new_t snd_bt_sco_controls[] = {
+static struct snd_kcontrol_new snd_bt_sco_controls[] = {
 	BT_SCO_VOLUME("Master Volume", 0, MIXER_ADDR_MASTER),
 	BT_SCO_VOLUME("Mic Volume", 0, MIXER_ADDR_MIC),
 	{.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
@@ -667,7 +671,7 @@
 
 int __init snd_card_bt_sco_new_mixer(snd_card_bt_sco_t * bt_sco)
 {
-	snd_card_t *card = bt_sco->card;
+	struct snd_card *card = bt_sco->card;
 
 	unsigned int idx;
 	int err;
@@ -686,17 +690,17 @@
 	return 0;
 }
 
-static int snd_card_bt_open(snd_hwdep_t * hw, struct file *file)
+static int snd_card_bt_open(struct snd_hwdep * hw, struct file *file)
 {
 	return 0;
 }
 
-static int snd_card_bt_release(snd_hwdep_t * hw, struct file *file)
+static int snd_card_bt_release(struct snd_hwdep * hw, struct file *file)
 {
 	return 0;
 }
 
-static int snd_card_bt_ioctl(snd_hwdep_t * hw, struct file *file,
+static int snd_card_bt_ioctl(struct snd_hwdep * hw, struct file *file,
 			     unsigned int cmd, unsigned long arg)
 {
 	snd_card_bt_sco_t *bt_sco = hw->card->private_data;
@@ -750,7 +754,7 @@
 	return err;
 }
 
-static long snd_card_bt_write(snd_hwdep_t * hw, const char *buf, long count,
+static long snd_card_bt_write(struct snd_hwdep * hw, const char *buf, long count,
 			      loff_t * offset)
 {
 	snd_card_bt_sco_t *bt_sco = hw->card->private_data;
@@ -785,7 +789,7 @@
 	return retval;
 }
 
-static long snd_card_bt_read(snd_hwdep_t * hw, char *buf, long count,
+static long snd_card_bt_read(struct snd_hwdep * hw, char *buf, long count,
 			     loff_t * offset)
 {
 	snd_card_bt_sco_t *bt_sco = hw->card->private_data;
@@ -839,7 +843,7 @@
 	return retval;
 }
 
-static unsigned int snd_card_bt_poll(snd_hwdep_t * hw,
+static unsigned int snd_card_bt_poll(struct snd_hwdep * hw,
 				     struct file *file, poll_table * wait)
 {
 	snd_card_bt_sco_t *bt_sco = hw->card->private_data;
@@ -863,7 +867,7 @@
 
 static int snd_card_bt_sco_thread(void *data)
 {
-	snd_card_t *card = (snd_card_t *) data;
+	struct snd_card *card = (struct snd_card *) data;
 	snd_card_bt_sco_t *bt_sco = card->private_data;
 	struct socket *sock;
 	int len;
@@ -1117,7 +1121,7 @@
 	complete_and_exit(&bt_sco->thread_done, 0);
 }
 
-static void snd_card_bt_private_free(snd_card_t * card)
+static void snd_card_bt_private_free(struct snd_card * card)
 {
 	snd_card_bt_sco_t *bt_sco = card->private_data;
 
@@ -1139,10 +1143,10 @@
 
 static int __init snd_card_bt_sco_probe(int dev)
 {
-	snd_card_t *card;
+	struct snd_card *card;
 	snd_card_bt_sco_t *bt_sco;
 	int err;
-	snd_hwdep_t *hw;
+	struct snd_hwdep *hw;
 
 	card =
 	    snd_card_new(index[dev], SNDRV_DEFAULT_STR1,

[-- Attachment #3: Type: text/plain, Size: 286 bytes --]

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/

[-- Attachment #4: Type: text/plain, Size: 164 bytes --]

_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

       reply	other threads:[~2007-05-04  8:49 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20070503214340.M20676@chilan.com>
     [not found] ` <1178260119.25425.12.camel@violet>
2007-05-04  8:49   ` Tomasz Chiliński [this message]
2007-05-04 14:03     ` [Bluez-devel] kernel 2.6.21 btsco 0.50 patch Brad Midgley
2007-05-04 14:12       ` Tomasz Chiliński

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070504084720.M21573@chilan.com \
    --to=tomasz.chilinski@chilan.com \
    --cc=bluez-devel@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.