aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@brturbo.com.br>2006-01-09 12:25:15 -0500
committerMauro Carvalho Chehab <mchehab@brturbo.com.br>2006-01-09 12:25:15 -0500
commitade0836c8c3bf72edafd18d3256c4fd874a8236f (patch)
tree54e1d9351317843fc5289a314feeedf544e21a74
parentcd43c3f60b73512744bb22fe27a266f611466827 (diff)
V4L/DVB (3104): MSP3400 miscelaneous fixes
- Removes obsoleted stuff - Reorders some stuff to make it clearer to read - Clears some debug messages Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
-rw-r--r--drivers/media/video/msp3400.c76
1 files changed, 20 insertions, 56 deletions
diff --git a/drivers/media/video/msp3400.c b/drivers/media/video/msp3400.c
index 6cff06a7eab7..546e3f0067fe 100644
--- a/drivers/media/video/msp3400.c
+++ b/drivers/media/video/msp3400.c
@@ -45,7 +45,6 @@
45#include <linux/errno.h> 45#include <linux/errno.h>
46#include <linux/slab.h> 46#include <linux/slab.h>
47#include <linux/i2c.h> 47#include <linux/i2c.h>
48#include <linux/videodev.h>
49#include <linux/init.h> 48#include <linux/init.h>
50#include <linux/smp_lock.h> 49#include <linux/smp_lock.h>
51#include <linux/kthread.h> 50#include <linux/kthread.h>
@@ -53,9 +52,26 @@
53#include <asm/semaphore.h> 52#include <asm/semaphore.h>
54#include <asm/pgtable.h> 53#include <asm/pgtable.h>
55 54
55#include <linux/videodev.h>
56#include <media/audiochip.h> 56#include <media/audiochip.h>
57#include "msp3400.h" 57#include "msp3400.h"
58 58
59/* ---------------------------------------------------------------------- */
60
61#define I2C_MSP3400C 0x80
62#define I2C_MSP3400C_ALT 0x88
63
64#define I2C_MSP3400C_DEM 0x10
65#define I2C_MSP3400C_DFP 0x12
66
67/* Addresses to scan */
68static unsigned short normal_i2c[] = {
69 I2C_MSP3400C >> 1,
70 I2C_MSP3400C_ALT >> 1,
71 I2C_CLIENT_END
72};
73I2C_CLIENT_INSMOD;
74
59#define msp3400_dbg(fmt, arg...) \ 75#define msp3400_dbg(fmt, arg...) \
60 do { \ 76 do { \
61 if (debug) \ 77 if (debug) \
@@ -180,21 +196,6 @@ MODULE_PARM_DESC(standard, "Specify audio standard: 32 = NTSC, 64 = radio, Defau
180MODULE_PARM_DESC(amsound, "Hardwire AM sound at 6.5Hz (France), FM can autoscan"); 196MODULE_PARM_DESC(amsound, "Hardwire AM sound at 6.5Hz (France), FM can autoscan");
181MODULE_PARM_DESC(dolby, "Activates Dolby processsing"); 197MODULE_PARM_DESC(dolby, "Activates Dolby processsing");
182 198
183/* ---------------------------------------------------------------------- */
184
185#define I2C_MSP3400C 0x80
186#define I2C_MSP3400C_ALT 0x88
187
188#define I2C_MSP3400C_DEM 0x10
189#define I2C_MSP3400C_DFP 0x12
190
191/* Addresses to scan */
192static unsigned short normal_i2c[] = {
193 I2C_MSP3400C >> 1,
194 I2C_MSP3400C_ALT >> 1,
195 I2C_CLIENT_END
196};
197I2C_CLIENT_INSMOD;
198 199
199MODULE_DESCRIPTION("device driver for msp34xx TV sound processor"); 200MODULE_DESCRIPTION("device driver for msp34xx TV sound processor");
200MODULE_AUTHOR("Gerd Knorr"); 201MODULE_AUTHOR("Gerd Knorr");
@@ -713,8 +714,6 @@ msp3400c_print_mode(struct i2c_client *client)
713 } 714 }
714} 715}
715 716
716#define MSP3400_MAX 4
717static struct i2c_client *msps[MSP3400_MAX];
718static void msp3400c_restore_dfp(struct i2c_client *client) 717static void msp3400c_restore_dfp(struct i2c_client *client)
719{ 718{
720 struct msp3400c *msp = i2c_get_clientdata(client); 719 struct msp3400c *msp = i2c_get_clientdata(client);
@@ -1563,40 +1562,6 @@ static void msp_wake_thread(struct i2c_client *client)
1563 wake_up_interruptible(&msp->wq); 1562 wake_up_interruptible(&msp->wq);
1564} 1563}
1565 1564
1566static int msp_detach(struct i2c_client *client)
1567{
1568 struct msp3400c *msp = i2c_get_clientdata(client);
1569 int i;
1570
1571 /* shutdown control thread */
1572 if (msp->kthread) {
1573 msp->restart = 1;
1574 kthread_stop(msp->kthread);
1575 }
1576 msp3400c_reset(client);
1577
1578 /* update our own array */
1579 for (i = 0; i < MSP3400_MAX; i++) {
1580 if (client == msps[i]) {
1581 msps[i] = NULL;
1582 break;
1583 }
1584 }
1585
1586 i2c_detach_client(client);
1587
1588 kfree(msp);
1589 kfree(client);
1590 return 0;
1591}
1592
1593static int msp_probe(struct i2c_adapter *adap)
1594{
1595 if (adap->class & I2C_CLASS_TV_ANALOG)
1596 return i2c_probe(adap, &addr_data, msp_attach);
1597 return 0;
1598}
1599
1600/* ----------------------------------------------------------------------- */ 1565/* ----------------------------------------------------------------------- */
1601 1566
1602static int mode_v4l2_to_v4l1(int rxsubchans) 1567static int mode_v4l2_to_v4l1(int rxsubchans)
@@ -2147,8 +2112,7 @@ static int msp_command(struct i2c_client *client, unsigned int cmd, void *arg)
2147 else 2112 else
2148 msp->i2s_mode=0; 2113 msp->i2s_mode=0;
2149 } 2114 }
2150 msp3400_dbg("Setting audio out on msp34xx to input %i, mode %i\n", 2115 msp3400_dbg("Setting audio out on msp34xx to input %i, mode %i\n",a->index,msp->i2s_mode);
2151 a->index,msp->i2s_mode);
2152 msp3400c_set_scart(client,msp->in_scart,a->index+1); 2116 msp3400c_set_scart(client,msp->in_scart,a->index+1);
2153 2117
2154 break; 2118 break;
@@ -2196,7 +2160,7 @@ static int msp_suspend(struct device * dev, pm_message_t state)
2196{ 2160{
2197 struct i2c_client *client = container_of(dev, struct i2c_client, dev); 2161 struct i2c_client *client = container_of(dev, struct i2c_client, dev);
2198 2162
2199 msp3400_dbg("msp34xx: suspend\n"); 2163 msp3400_dbg("suspend\n");
2200 msp3400c_reset(client); 2164 msp3400c_reset(client);
2201 return 0; 2165 return 0;
2202} 2166}
@@ -2205,7 +2169,7 @@ static int msp_resume(struct device * dev)
2205{ 2169{
2206 struct i2c_client *client = container_of(dev, struct i2c_client, dev); 2170 struct i2c_client *client = container_of(dev, struct i2c_client, dev);
2207 2171
2208 msp3400_dbg("msp34xx: resume\n"); 2172 msp3400_dbg("resume\n");
2209 msp_wake_thread(client); 2173 msp_wake_thread(client);
2210 return 0; 2174 return 0;
2211} 2175}