git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
drivers
/
media
/
dvb
/
pluto2
/
pluto2.c
diff --git
a/drivers/media/dvb/pluto2/pluto2.c
b/drivers/media/dvb/pluto2/pluto2.c
index
1c5316e
..
058df5c
100644
(file)
--- a/
drivers/media/dvb/pluto2/pluto2.c
+++ b/
drivers/media/dvb/pluto2/pluto2.c
@@
-149,6
+149,15
@@
static inline void pluto_rw(struct pluto *pluto, u32 reg, u32 mask, u32 bits)
writel(val, &pluto->io_mem[reg]);
}
writel(val, &pluto->io_mem[reg]);
}
+static void pluto_write_tscr(struct pluto *pluto, u32 val)
+{
+ /* set the number of packets */
+ val &= ~TSCR_ADEF;
+ val |= TS_DMA_PACKETS / 2;
+
+ pluto_writereg(pluto, REG_TSCR, val);
+}
+
static void pluto_setsda(void *data, int state)
{
struct pluto *pluto = data;
static void pluto_setsda(void *data, int state)
{
struct pluto *pluto = data;
@@
-213,11
+222,11
@@
static void pluto_reset_ts(struct pluto *pluto, int reenable)
if (val & TSCR_RSTN) {
val &= ~TSCR_RSTN;
if (val & TSCR_RSTN) {
val &= ~TSCR_RSTN;
- pluto_write
reg(pluto, REG_TSCR
, val);
+ pluto_write
_tscr(pluto
, val);
}
if (reenable) {
val |= TSCR_RSTN;
}
if (reenable) {
val |= TSCR_RSTN;
- pluto_write
reg(pluto, REG_TSCR
, val);
+ pluto_write
_tscr(pluto
, val);
}
}
}
}
@@
-306,7
+315,7
@@
static void pluto_dma_end(struct pluto *pluto, unsigned int nbpackets)
TS_DMA_BYTES, PCI_DMA_FROMDEVICE);
}
TS_DMA_BYTES, PCI_DMA_FROMDEVICE);
}
-static irqreturn_t pluto_irq(int irq, void *dev_id
, struct pt_regs *regs
)
+static irqreturn_t pluto_irq(int irq, void *dev_id)
{
struct pluto *pluto = dev_id;
u32 tscr;
{
struct pluto *pluto = dev_id;
u32 tscr;
@@
-339,7
+348,7
@@
static irqreturn_t pluto_irq(int irq, void *dev_id, struct pt_regs *regs)
}
/* ACK the interrupt */
}
/* ACK the interrupt */
- pluto_write
reg(pluto, REG_TSCR
, tscr | TSCR_IACK);
+ pluto_write
_tscr(pluto
, tscr | TSCR_IACK);
return IRQ_HANDLED;
}
return IRQ_HANDLED;
}
@@
-348,9
+357,6
@@
static void __devinit pluto_enable_irqs(struct pluto *pluto)
{
u32 val = pluto_readreg(pluto, REG_TSCR);
{
u32 val = pluto_readreg(pluto, REG_TSCR);
- /* set the number of packets */
- val &= ~TSCR_ADEF;
- val |= TS_DMA_PACKETS / 2;
/* disable AFUL and LOCK interrupts */
val |= (TSCR_MSKA | TSCR_MSKL);
/* enable DMA and OVERFLOW interrupts */
/* disable AFUL and LOCK interrupts */
val |= (TSCR_MSKA | TSCR_MSKL);
/* enable DMA and OVERFLOW interrupts */
@@
-358,7
+364,7
@@
static void __devinit pluto_enable_irqs(struct pluto *pluto)
/* clear pending interrupts */
val |= TSCR_IACK;
/* clear pending interrupts */
val |= TSCR_IACK;
- pluto_write
reg(pluto, REG_TSCR
, val);
+ pluto_write
_tscr(pluto
, val);
}
static void pluto_disable_irqs(struct pluto *pluto)
}
static void pluto_disable_irqs(struct pluto *pluto)
@@
-370,7
+376,7
@@
static void pluto_disable_irqs(struct pluto *pluto)
/* clear pending interrupts */
val |= TSCR_IACK;
/* clear pending interrupts */
val |= TSCR_IACK;
- pluto_write
reg(pluto, REG_TSCR
, val);
+ pluto_write
_tscr(pluto
, val);
}
static int __devinit pluto_hw_init(struct pluto *pluto)
}
static int __devinit pluto_hw_init(struct pluto *pluto)
@@
-424,8
+430,8
@@
static inline u32 divide(u32 numerator, u32 denominator)
}
/* LG Innotek TDTE-E001P (Infineon TUA6034) */
}
/* LG Innotek TDTE-E001P (Infineon TUA6034) */
-static int lg_tdtpe001p_
pll_set
(struct dvb_frontend *fe,
- struct dvb_frontend_parameters *p)
+static int lg_tdtpe001p_
tuner_set_params
(struct dvb_frontend *fe,
+
struct dvb_frontend_parameters *p)
{
struct pluto *pluto = frontend_to_pluto(fe);
struct i2c_msg msg;
{
struct pluto *pluto = frontend_to_pluto(fe);
struct i2c_msg msg;
@@
-473,6
+479,8
@@
static int lg_tdtpe001p_pll_set(struct dvb_frontend *fe,
msg.buf = buf;
msg.len = sizeof(buf);
msg.buf = buf;
msg.len = sizeof(buf);
+ if (fe->ops.i2c_gate_ctrl)
+ fe->ops.i2c_gate_ctrl(fe, 1);
ret = i2c_transfer(&pluto->i2c_adap, &msg, 1);
if (ret < 0)
return ret;
ret = i2c_transfer(&pluto->i2c_adap, &msg, 1);
if (ret < 0)
return ret;
@@
-497,8
+505,6
@@
static struct tda1004x_config pluto2_fe_config __devinitdata = {
.xtal_freq = TDA10046_XTAL_16M,
.agc_config = TDA10046_AGC_DEFAULT,
.if_freq = TDA10046_FREQ_3617,
.xtal_freq = TDA10046_XTAL_16M,
.agc_config = TDA10046_AGC_DEFAULT,
.if_freq = TDA10046_FREQ_3617,
- .pll_set = lg_tdtpe001p_pll_set,
- .pll_sleep = NULL,
.request_firmware = pluto2_request_firmware,
};
.request_firmware = pluto2_request_firmware,
};
@@
-511,11
+517,12
@@
static int __devinit frontend_init(struct pluto *pluto)
dev_err(&pluto->pdev->dev, "could not attach frontend\n");
return -ENODEV;
}
dev_err(&pluto->pdev->dev, "could not attach frontend\n");
return -ENODEV;
}
+ pluto->fe->ops.tuner_ops.set_params = lg_tdtpe001p_tuner_set_params;
ret = dvb_register_frontend(&pluto->dvb_adapter, pluto->fe);
if (ret < 0) {
ret = dvb_register_frontend(&pluto->dvb_adapter, pluto->fe);
if (ret < 0) {
- if (pluto->fe->ops
->
release)
- pluto->fe->ops
->
release(pluto->fe);
+ if (pluto->fe->ops
.
release)
+ pluto->fe->ops
.
release(pluto->fe);
return ret;
}
return ret;
}
@@
-615,7
+622,7
@@
static int __devinit pluto2_probe(struct pci_dev *pdev,
pci_set_drvdata(pdev, pluto);
pci_set_drvdata(pdev, pluto);
- ret = request_irq(pdev->irq, pluto_irq,
SA_SHIRQ
, DRIVER_NAME, pluto);
+ ret = request_irq(pdev->irq, pluto_irq,
IRQF_SHARED
, DRIVER_NAME, pluto);
if (ret < 0)
goto err_pci_iounmap;
if (ret < 0)
goto err_pci_iounmap;
@@
-647,9
+654,9
@@
static int __devinit pluto2_probe(struct pci_dev *pdev,
goto err_pluto_hw_exit;
/* dvb */
goto err_pluto_hw_exit;
/* dvb */
- ret = dvb_register_adapter(&pluto->dvb_adapter, DRIVER_NAME, THIS_MODULE);
+ ret = dvb_register_adapter(&pluto->dvb_adapter, DRIVER_NAME, THIS_MODULE
, &pdev->dev
);
if (ret < 0)
if (ret < 0)
- goto err_i2c_
bit_del_bus
;
+ goto err_i2c_
del_adapter
;
dvb_adapter = &pluto->dvb_adapter;
dvb_adapter = &pluto->dvb_adapter;
@@
-711,8
+718,8
@@
err_dvb_dmx_release:
dvb_dmx_release(dvbdemux);
err_dvb_unregister_adapter:
dvb_unregister_adapter(dvb_adapter);
dvb_dmx_release(dvbdemux);
err_dvb_unregister_adapter:
dvb_unregister_adapter(dvb_adapter);
-err_i2c_
bit_del_bus
:
- i2c_
bit_del_bus
(&pluto->i2c_adap);
+err_i2c_
del_adapter
:
+ i2c_
del_adapter
(&pluto->i2c_adap);
err_pluto_hw_exit:
pluto_hw_exit(pluto);
err_free_irq:
err_pluto_hw_exit:
pluto_hw_exit(pluto);
err_free_irq:
@@
-747,7
+754,7
@@
static void __devexit pluto2_remove(struct pci_dev *pdev)
dvb_dmxdev_release(&pluto->dmxdev);
dvb_dmx_release(dvbdemux);
dvb_unregister_adapter(dvb_adapter);
dvb_dmxdev_release(&pluto->dmxdev);
dvb_dmx_release(dvbdemux);
dvb_unregister_adapter(dvb_adapter);
- i2c_
bit_del_bus
(&pluto->i2c_adap);
+ i2c_
del_adapter
(&pluto->i2c_adap);
pluto_hw_exit(pluto);
free_irq(pdev->irq, pluto);
pci_iounmap(pdev, pluto->io_mem);
pluto_hw_exit(pluto);
free_irq(pdev->irq, pluto);
pci_iounmap(pdev, pluto->io_mem);