pluto             115 drivers/media/pci/pluto2/pluto2.c static inline struct pluto *feed_to_pluto(struct dvb_demux_feed *feed)
pluto             117 drivers/media/pci/pluto2/pluto2.c 	return container_of(feed->demux, struct pluto, demux);
pluto             120 drivers/media/pci/pluto2/pluto2.c static inline struct pluto *frontend_to_pluto(struct dvb_frontend *fe)
pluto             122 drivers/media/pci/pluto2/pluto2.c 	return container_of(fe->dvb, struct pluto, dvb_adapter);
pluto             125 drivers/media/pci/pluto2/pluto2.c static inline u32 pluto_readreg(struct pluto *pluto, u32 reg)
pluto             127 drivers/media/pci/pluto2/pluto2.c 	return readl(&pluto->io_mem[reg]);
pluto             130 drivers/media/pci/pluto2/pluto2.c static inline void pluto_writereg(struct pluto *pluto, u32 reg, u32 val)
pluto             132 drivers/media/pci/pluto2/pluto2.c 	writel(val, &pluto->io_mem[reg]);
pluto             135 drivers/media/pci/pluto2/pluto2.c static inline void pluto_rw(struct pluto *pluto, u32 reg, u32 mask, u32 bits)
pluto             137 drivers/media/pci/pluto2/pluto2.c 	u32 val = readl(&pluto->io_mem[reg]);
pluto             140 drivers/media/pci/pluto2/pluto2.c 	writel(val, &pluto->io_mem[reg]);
pluto             143 drivers/media/pci/pluto2/pluto2.c static void pluto_write_tscr(struct pluto *pluto, u32 val)
pluto             149 drivers/media/pci/pluto2/pluto2.c 	pluto_writereg(pluto, REG_TSCR, val);
pluto             154 drivers/media/pci/pluto2/pluto2.c 	struct pluto *pluto = data;
pluto             157 drivers/media/pci/pluto2/pluto2.c 		pluto_rw(pluto, REG_SLCS, SLCS_SDA, SLCS_SDA);
pluto             159 drivers/media/pci/pluto2/pluto2.c 		pluto_rw(pluto, REG_SLCS, SLCS_SDA, 0);
pluto             164 drivers/media/pci/pluto2/pluto2.c 	struct pluto *pluto = data;
pluto             167 drivers/media/pci/pluto2/pluto2.c 		pluto_rw(pluto, REG_SLCS, SLCS_SCL, SLCS_SCL);
pluto             169 drivers/media/pci/pluto2/pluto2.c 		pluto_rw(pluto, REG_SLCS, SLCS_SCL, 0);
pluto             173 drivers/media/pci/pluto2/pluto2.c 	if ((state) && (pluto->i2cbug == 0)) {
pluto             174 drivers/media/pci/pluto2/pluto2.c 		pluto->i2cbug = 1;
pluto             176 drivers/media/pci/pluto2/pluto2.c 		if ((!state) && (pluto->i2cbug == 1))
pluto             177 drivers/media/pci/pluto2/pluto2.c 			pluto_setsda(pluto, 1);
pluto             178 drivers/media/pci/pluto2/pluto2.c 		pluto->i2cbug = 0;
pluto             184 drivers/media/pci/pluto2/pluto2.c 	struct pluto *pluto = data;
pluto             186 drivers/media/pci/pluto2/pluto2.c 	return pluto_readreg(pluto, REG_SLCS) & SLCS_SDA;
pluto             191 drivers/media/pci/pluto2/pluto2.c 	struct pluto *pluto = data;
pluto             193 drivers/media/pci/pluto2/pluto2.c 	return pluto_readreg(pluto, REG_SLCS) & SLCS_SCL;
pluto             196 drivers/media/pci/pluto2/pluto2.c static void pluto_reset_frontend(struct pluto *pluto, int reenable)
pluto             198 drivers/media/pci/pluto2/pluto2.c 	u32 val = pluto_readreg(pluto, REG_MISC);
pluto             202 drivers/media/pci/pluto2/pluto2.c 		pluto_writereg(pluto, REG_MISC, val);
pluto             206 drivers/media/pci/pluto2/pluto2.c 		pluto_writereg(pluto, REG_MISC, val);
pluto             210 drivers/media/pci/pluto2/pluto2.c static void pluto_reset_ts(struct pluto *pluto, int reenable)
pluto             212 drivers/media/pci/pluto2/pluto2.c 	u32 val = pluto_readreg(pluto, REG_TSCR);
pluto             216 drivers/media/pci/pluto2/pluto2.c 		pluto_write_tscr(pluto, val);
pluto             220 drivers/media/pci/pluto2/pluto2.c 		pluto_write_tscr(pluto, val);
pluto             224 drivers/media/pci/pluto2/pluto2.c static void pluto_set_dma_addr(struct pluto *pluto)
pluto             226 drivers/media/pci/pluto2/pluto2.c 	pluto_writereg(pluto, REG_PCAR, pluto->dma_addr);
pluto             229 drivers/media/pci/pluto2/pluto2.c static int pluto_dma_map(struct pluto *pluto)
pluto             231 drivers/media/pci/pluto2/pluto2.c 	pluto->dma_addr = pci_map_single(pluto->pdev, pluto->dma_buf,
pluto             234 drivers/media/pci/pluto2/pluto2.c 	return pci_dma_mapping_error(pluto->pdev, pluto->dma_addr);
pluto             237 drivers/media/pci/pluto2/pluto2.c static void pluto_dma_unmap(struct pluto *pluto)
pluto             239 drivers/media/pci/pluto2/pluto2.c 	pci_unmap_single(pluto->pdev, pluto->dma_addr,
pluto             245 drivers/media/pci/pluto2/pluto2.c 	struct pluto *pluto = feed_to_pluto(f);
pluto             248 drivers/media/pci/pluto2/pluto2.c 	if (pluto->users++ == 0)
pluto             249 drivers/media/pci/pluto2/pluto2.c 		pluto_rw(pluto, REG_PIDn(0), PID0_AFIL | PID0_NOFIL, 0);
pluto             252 drivers/media/pci/pluto2/pluto2.c 		pluto_rw(pluto, REG_PIDn(f->index), PIDn_ENP | PIDn_PID, PIDn_ENP | f->pid);
pluto             253 drivers/media/pci/pluto2/pluto2.c 	else if (pluto->full_ts_users++ == 0)
pluto             254 drivers/media/pci/pluto2/pluto2.c 		pluto_rw(pluto, REG_PIDn(0), PID0_NOFIL, PID0_NOFIL);
pluto             261 drivers/media/pci/pluto2/pluto2.c 	struct pluto *pluto = feed_to_pluto(f);
pluto             264 drivers/media/pci/pluto2/pluto2.c 	if (--pluto->users == 0)
pluto             265 drivers/media/pci/pluto2/pluto2.c 		pluto_rw(pluto, REG_PIDn(0), PID0_AFIL, PID0_AFIL);
pluto             268 drivers/media/pci/pluto2/pluto2.c 		pluto_rw(pluto, REG_PIDn(f->index), PIDn_ENP | PIDn_PID, 0x1fff);
pluto             269 drivers/media/pci/pluto2/pluto2.c 	else if (--pluto->full_ts_users == 0)
pluto             270 drivers/media/pci/pluto2/pluto2.c 		pluto_rw(pluto, REG_PIDn(0), PID0_NOFIL, 0);
pluto             275 drivers/media/pci/pluto2/pluto2.c static void pluto_dma_end(struct pluto *pluto, unsigned int nbpackets)
pluto             279 drivers/media/pci/pluto2/pluto2.c 	pci_dma_sync_single_for_cpu(pluto->pdev, pluto->dma_addr,
pluto             294 drivers/media/pci/pluto2/pluto2.c 		while (pluto->dma_buf[i] == 0x47)
pluto             298 drivers/media/pci/pluto2/pluto2.c 			pluto_reset_ts(pluto, 1);
pluto             299 drivers/media/pci/pluto2/pluto2.c 			dev_printk(KERN_DEBUG, &pluto->pdev->dev, "resetting TS because of invalid packet counter\n");
pluto             303 drivers/media/pci/pluto2/pluto2.c 	dvb_dmx_swfilter_packets(&pluto->demux, pluto->dma_buf, nbpackets);
pluto             307 drivers/media/pci/pluto2/pluto2.c 	memset(pluto->dma_buf, 0, nbpackets * 188);
pluto             310 drivers/media/pci/pluto2/pluto2.c 	pluto_set_dma_addr(pluto);
pluto             313 drivers/media/pci/pluto2/pluto2.c 	pci_dma_sync_single_for_device(pluto->pdev, pluto->dma_addr,
pluto             319 drivers/media/pci/pluto2/pluto2.c 	struct pluto *pluto = dev_id;
pluto             323 drivers/media/pci/pluto2/pluto2.c 	tscr = pluto_readreg(pluto, REG_TSCR);
pluto             328 drivers/media/pci/pluto2/pluto2.c 		if (pluto->dead == 0)
pluto             329 drivers/media/pci/pluto2/pluto2.c 			dev_err(&pluto->pdev->dev, "card has hung or been ejected.\n");
pluto             331 drivers/media/pci/pluto2/pluto2.c 		pluto->dead = 1;
pluto             337 drivers/media/pci/pluto2/pluto2.c 		pluto_dma_end(pluto, (tscr & TSCR_NBPACKETS) >> 24);
pluto             340 drivers/media/pci/pluto2/pluto2.c 			pluto->overflow++;
pluto             341 drivers/media/pci/pluto2/pluto2.c 		if (pluto->overflow) {
pluto             342 drivers/media/pci/pluto2/pluto2.c 			dev_err(&pluto->pdev->dev, "overflow irq (%d)\n",
pluto             343 drivers/media/pci/pluto2/pluto2.c 					pluto->overflow);
pluto             344 drivers/media/pci/pluto2/pluto2.c 			pluto_reset_ts(pluto, 1);
pluto             345 drivers/media/pci/pluto2/pluto2.c 			pluto->overflow = 0;
pluto             348 drivers/media/pci/pluto2/pluto2.c 		pluto->overflow++;
pluto             352 drivers/media/pci/pluto2/pluto2.c 	pluto_write_tscr(pluto, tscr | TSCR_IACK);
pluto             357 drivers/media/pci/pluto2/pluto2.c static void pluto_enable_irqs(struct pluto *pluto)
pluto             359 drivers/media/pci/pluto2/pluto2.c 	u32 val = pluto_readreg(pluto, REG_TSCR);
pluto             368 drivers/media/pci/pluto2/pluto2.c 	pluto_write_tscr(pluto, val);
pluto             371 drivers/media/pci/pluto2/pluto2.c static void pluto_disable_irqs(struct pluto *pluto)
pluto             373 drivers/media/pci/pluto2/pluto2.c 	u32 val = pluto_readreg(pluto, REG_TSCR);
pluto             380 drivers/media/pci/pluto2/pluto2.c 	pluto_write_tscr(pluto, val);
pluto             383 drivers/media/pci/pluto2/pluto2.c static int pluto_hw_init(struct pluto *pluto)
pluto             385 drivers/media/pci/pluto2/pluto2.c 	pluto_reset_frontend(pluto, 1);
pluto             388 drivers/media/pci/pluto2/pluto2.c 	pluto_rw(pluto, REG_MISC, MISC_ALED, MISC_ALED);
pluto             392 drivers/media/pci/pluto2/pluto2.c 	pluto_rw(pluto, REG_PIDn(0), PID0_END, PID0_END);
pluto             394 drivers/media/pci/pluto2/pluto2.c 	pluto_rw(pluto, REG_PIDn(0), PID0_END, 0);
pluto             397 drivers/media/pci/pluto2/pluto2.c 	pluto_dma_map(pluto);
pluto             398 drivers/media/pci/pluto2/pluto2.c 	pluto_set_dma_addr(pluto);
pluto             401 drivers/media/pci/pluto2/pluto2.c 	pluto_enable_irqs(pluto);
pluto             404 drivers/media/pci/pluto2/pluto2.c 	pluto_reset_ts(pluto, 1);
pluto             409 drivers/media/pci/pluto2/pluto2.c static void pluto_hw_exit(struct pluto *pluto)
pluto             412 drivers/media/pci/pluto2/pluto2.c 	pluto_disable_irqs(pluto);
pluto             414 drivers/media/pci/pluto2/pluto2.c 	pluto_reset_ts(pluto, 0);
pluto             417 drivers/media/pci/pluto2/pluto2.c 	pluto_rw(pluto, REG_MISC, MISC_ALED | MISC_LED1 | MISC_LED0, MISC_LED1);
pluto             420 drivers/media/pci/pluto2/pluto2.c 	pluto_dma_unmap(pluto);
pluto             422 drivers/media/pci/pluto2/pluto2.c 	pluto_reset_frontend(pluto, 0);
pluto             437 drivers/media/pci/pluto2/pluto2.c 	struct pluto *pluto = frontend_to_pluto(fe);
pluto             477 drivers/media/pci/pluto2/pluto2.c 	ret = i2c_transfer(&pluto->i2c_adap, &msg, 1);
pluto             489 drivers/media/pci/pluto2/pluto2.c 	struct pluto *pluto = frontend_to_pluto(fe);
pluto             491 drivers/media/pci/pluto2/pluto2.c 	return request_firmware(fw, name, &pluto->pdev->dev);
pluto             504 drivers/media/pci/pluto2/pluto2.c static int frontend_init(struct pluto *pluto)
pluto             508 drivers/media/pci/pluto2/pluto2.c 	pluto->fe = tda10046_attach(&pluto2_fe_config, &pluto->i2c_adap);
pluto             509 drivers/media/pci/pluto2/pluto2.c 	if (!pluto->fe) {
pluto             510 drivers/media/pci/pluto2/pluto2.c 		dev_err(&pluto->pdev->dev, "could not attach frontend\n");
pluto             513 drivers/media/pci/pluto2/pluto2.c 	pluto->fe->ops.tuner_ops.set_params = lg_tdtpe001p_tuner_set_params;
pluto             515 drivers/media/pci/pluto2/pluto2.c 	ret = dvb_register_frontend(&pluto->dvb_adapter, pluto->fe);
pluto             517 drivers/media/pci/pluto2/pluto2.c 		if (pluto->fe->ops.release)
pluto             518 drivers/media/pci/pluto2/pluto2.c 			pluto->fe->ops.release(pluto->fe);
pluto             525 drivers/media/pci/pluto2/pluto2.c static void pluto_read_rev(struct pluto *pluto)
pluto             527 drivers/media/pci/pluto2/pluto2.c 	u32 val = pluto_readreg(pluto, REG_MISC) & MISC_DVR;
pluto             528 drivers/media/pci/pluto2/pluto2.c 	dev_info(&pluto->pdev->dev, "board revision %d.%d\n",
pluto             532 drivers/media/pci/pluto2/pluto2.c static void pluto_read_mac(struct pluto *pluto, u8 *mac)
pluto             534 drivers/media/pci/pluto2/pluto2.c 	u32 val = pluto_readreg(pluto, REG_MMAC);
pluto             538 drivers/media/pci/pluto2/pluto2.c 	val = pluto_readreg(pluto, REG_IMAC);
pluto             542 drivers/media/pci/pluto2/pluto2.c 	val = pluto_readreg(pluto, REG_LMAC);
pluto             546 drivers/media/pci/pluto2/pluto2.c 	dev_info(&pluto->pdev->dev, "MAC %pM\n", mac);
pluto             549 drivers/media/pci/pluto2/pluto2.c static int pluto_read_serial(struct pluto *pluto)
pluto             551 drivers/media/pci/pluto2/pluto2.c 	struct pci_dev *pdev = pluto->pdev;
pluto             579 drivers/media/pci/pluto2/pluto2.c 	struct pluto *pluto;
pluto             585 drivers/media/pci/pluto2/pluto2.c 	pluto = kzalloc(sizeof(struct pluto), GFP_KERNEL);
pluto             586 drivers/media/pci/pluto2/pluto2.c 	if (!pluto)
pluto             589 drivers/media/pci/pluto2/pluto2.c 	pluto->pdev = pdev;
pluto             608 drivers/media/pci/pluto2/pluto2.c 	pluto->io_mem = pci_iomap(pdev, 0, 0x40);
pluto             609 drivers/media/pci/pluto2/pluto2.c 	if (!pluto->io_mem) {
pluto             614 drivers/media/pci/pluto2/pluto2.c 	pci_set_drvdata(pdev, pluto);
pluto             616 drivers/media/pci/pluto2/pluto2.c 	ret = request_irq(pdev->irq, pluto_irq, IRQF_SHARED, DRIVER_NAME, pluto);
pluto             620 drivers/media/pci/pluto2/pluto2.c 	ret = pluto_hw_init(pluto);
pluto             625 drivers/media/pci/pluto2/pluto2.c 	i2c_set_adapdata(&pluto->i2c_adap, pluto);
pluto             626 drivers/media/pci/pluto2/pluto2.c 	strscpy(pluto->i2c_adap.name, DRIVER_NAME, sizeof(pluto->i2c_adap.name));
pluto             627 drivers/media/pci/pluto2/pluto2.c 	pluto->i2c_adap.owner = THIS_MODULE;
pluto             628 drivers/media/pci/pluto2/pluto2.c 	pluto->i2c_adap.dev.parent = &pdev->dev;
pluto             629 drivers/media/pci/pluto2/pluto2.c 	pluto->i2c_adap.algo_data = &pluto->i2c_bit;
pluto             630 drivers/media/pci/pluto2/pluto2.c 	pluto->i2c_bit.data = pluto;
pluto             631 drivers/media/pci/pluto2/pluto2.c 	pluto->i2c_bit.setsda = pluto_setsda;
pluto             632 drivers/media/pci/pluto2/pluto2.c 	pluto->i2c_bit.setscl = pluto_setscl;
pluto             633 drivers/media/pci/pluto2/pluto2.c 	pluto->i2c_bit.getsda = pluto_getsda;
pluto             634 drivers/media/pci/pluto2/pluto2.c 	pluto->i2c_bit.getscl = pluto_getscl;
pluto             635 drivers/media/pci/pluto2/pluto2.c 	pluto->i2c_bit.udelay = 10;
pluto             636 drivers/media/pci/pluto2/pluto2.c 	pluto->i2c_bit.timeout = 10;
pluto             639 drivers/media/pci/pluto2/pluto2.c 	pluto_setsda(pluto, 1);
pluto             640 drivers/media/pci/pluto2/pluto2.c 	pluto_setscl(pluto, 1);
pluto             642 drivers/media/pci/pluto2/pluto2.c 	ret = i2c_bit_add_bus(&pluto->i2c_adap);
pluto             647 drivers/media/pci/pluto2/pluto2.c 	ret = dvb_register_adapter(&pluto->dvb_adapter, DRIVER_NAME,
pluto             652 drivers/media/pci/pluto2/pluto2.c 	dvb_adapter = &pluto->dvb_adapter;
pluto             654 drivers/media/pci/pluto2/pluto2.c 	pluto_read_rev(pluto);
pluto             655 drivers/media/pci/pluto2/pluto2.c 	pluto_read_serial(pluto);
pluto             656 drivers/media/pci/pluto2/pluto2.c 	pluto_read_mac(pluto, dvb_adapter->proposed_mac);
pluto             658 drivers/media/pci/pluto2/pluto2.c 	dvbdemux = &pluto->demux;
pluto             671 drivers/media/pci/pluto2/pluto2.c 	pluto->hw_frontend.source = DMX_FRONTEND_0;
pluto             672 drivers/media/pci/pluto2/pluto2.c 	pluto->mem_frontend.source = DMX_MEMORY_FE;
pluto             673 drivers/media/pci/pluto2/pluto2.c 	pluto->dmxdev.filternum = NHWFILTERS;
pluto             674 drivers/media/pci/pluto2/pluto2.c 	pluto->dmxdev.demux = dmx;
pluto             676 drivers/media/pci/pluto2/pluto2.c 	ret = dvb_dmxdev_init(&pluto->dmxdev, dvb_adapter);
pluto             680 drivers/media/pci/pluto2/pluto2.c 	ret = dmx->add_frontend(dmx, &pluto->hw_frontend);
pluto             684 drivers/media/pci/pluto2/pluto2.c 	ret = dmx->add_frontend(dmx, &pluto->mem_frontend);
pluto             688 drivers/media/pci/pluto2/pluto2.c 	ret = dmx->connect_frontend(dmx, &pluto->hw_frontend);
pluto             692 drivers/media/pci/pluto2/pluto2.c 	ret = frontend_init(pluto);
pluto             696 drivers/media/pci/pluto2/pluto2.c 	dvb_net_init(dvb_adapter, &pluto->dvbnet, dmx);
pluto             703 drivers/media/pci/pluto2/pluto2.c 	dmx->remove_frontend(dmx, &pluto->mem_frontend);
pluto             705 drivers/media/pci/pluto2/pluto2.c 	dmx->remove_frontend(dmx, &pluto->hw_frontend);
pluto             707 drivers/media/pci/pluto2/pluto2.c 	dvb_dmxdev_release(&pluto->dmxdev);
pluto             713 drivers/media/pci/pluto2/pluto2.c 	i2c_del_adapter(&pluto->i2c_adap);
pluto             715 drivers/media/pci/pluto2/pluto2.c 	pluto_hw_exit(pluto);
pluto             717 drivers/media/pci/pluto2/pluto2.c 	free_irq(pdev->irq, pluto);
pluto             719 drivers/media/pci/pluto2/pluto2.c 	pci_iounmap(pdev, pluto->io_mem);
pluto             725 drivers/media/pci/pluto2/pluto2.c 	kfree(pluto);
pluto             731 drivers/media/pci/pluto2/pluto2.c 	struct pluto *pluto = pci_get_drvdata(pdev);
pluto             732 drivers/media/pci/pluto2/pluto2.c 	struct dvb_adapter *dvb_adapter = &pluto->dvb_adapter;
pluto             733 drivers/media/pci/pluto2/pluto2.c 	struct dvb_demux *dvbdemux = &pluto->demux;
pluto             737 drivers/media/pci/pluto2/pluto2.c 	dvb_net_release(&pluto->dvbnet);
pluto             738 drivers/media/pci/pluto2/pluto2.c 	if (pluto->fe)
pluto             739 drivers/media/pci/pluto2/pluto2.c 		dvb_unregister_frontend(pluto->fe);
pluto             742 drivers/media/pci/pluto2/pluto2.c 	dmx->remove_frontend(dmx, &pluto->mem_frontend);
pluto             743 drivers/media/pci/pluto2/pluto2.c 	dmx->remove_frontend(dmx, &pluto->hw_frontend);
pluto             744 drivers/media/pci/pluto2/pluto2.c 	dvb_dmxdev_release(&pluto->dmxdev);
pluto             747 drivers/media/pci/pluto2/pluto2.c 	i2c_del_adapter(&pluto->i2c_adap);
pluto             748 drivers/media/pci/pluto2/pluto2.c 	pluto_hw_exit(pluto);
pluto             749 drivers/media/pci/pluto2/pluto2.c 	free_irq(pdev->irq, pluto);
pluto             750 drivers/media/pci/pluto2/pluto2.c 	pci_iounmap(pdev, pluto->io_mem);
pluto             753 drivers/media/pci/pluto2/pluto2.c 	kfree(pluto);