aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/pci/pt3/pt3.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/pci/pt3/pt3.c')
-rw-r--r--drivers/media/pci/pt3/pt3.c75
1 files changed, 36 insertions, 39 deletions
diff --git a/drivers/media/pci/pt3/pt3.c b/drivers/media/pci/pt3/pt3.c
index 1fdeac11501a..7a37e8fe2ee2 100644
--- a/drivers/media/pci/pt3/pt3.c
+++ b/drivers/media/pci/pt3/pt3.c
@@ -255,7 +255,7 @@ static int pt3_fe_init(struct pt3_board *pt3)
255 pt3_i2c_reset(pt3); 255 pt3_i2c_reset(pt3);
256 ret = pt3_init_all_demods(pt3); 256 ret = pt3_init_all_demods(pt3);
257 if (ret < 0) { 257 if (ret < 0) {
258 dev_warn(&pt3->pdev->dev, "Failed to init demod chips."); 258 dev_warn(&pt3->pdev->dev, "Failed to init demod chips\n");
259 return ret; 259 return ret;
260 } 260 }
261 261
@@ -271,7 +271,7 @@ static int pt3_fe_init(struct pt3_board *pt3)
271 init0_ter, ARRAY_SIZE(init0_ter)); 271 init0_ter, ARRAY_SIZE(init0_ter));
272 if (ret < 0) { 272 if (ret < 0) {
273 dev_warn(&pt3->pdev->dev, 273 dev_warn(&pt3->pdev->dev,
274 "demod[%d] faild in init sequence0.", i); 274 "demod[%d] failed in init sequence0\n", i);
275 return ret; 275 return ret;
276 } 276 }
277 ret = fe->ops.init(fe); 277 ret = fe->ops.init(fe);
@@ -282,7 +282,7 @@ static int pt3_fe_init(struct pt3_board *pt3)
282 usleep_range(2000, 4000); 282 usleep_range(2000, 4000);
283 ret = pt3_set_tuner_power(pt3, true, false); 283 ret = pt3_set_tuner_power(pt3, true, false);
284 if (ret < 0) { 284 if (ret < 0) {
285 dev_warn(&pt3->pdev->dev, "Failed to control tuner module."); 285 dev_warn(&pt3->pdev->dev, "Failed to control tuner module\n");
286 return ret; 286 return ret;
287 } 287 }
288 288
@@ -297,7 +297,7 @@ static int pt3_fe_init(struct pt3_board *pt3)
297 cfg_ter, ARRAY_SIZE(cfg_ter)); 297 cfg_ter, ARRAY_SIZE(cfg_ter));
298 if (ret < 0) { 298 if (ret < 0) {
299 dev_warn(&pt3->pdev->dev, 299 dev_warn(&pt3->pdev->dev,
300 "demod[%d] faild in init sequence1.", i); 300 "demod[%d] failed in init sequence1\n", i);
301 return ret; 301 return ret;
302 } 302 }
303 } 303 }
@@ -311,19 +311,19 @@ static int pt3_fe_init(struct pt3_board *pt3)
311 ret = fe->ops.tuner_ops.init(fe); 311 ret = fe->ops.tuner_ops.init(fe);
312 if (ret < 0) { 312 if (ret < 0) {
313 dev_warn(&pt3->pdev->dev, 313 dev_warn(&pt3->pdev->dev,
314 "Failed to init SAT-tuner[%d].", i); 314 "Failed to init SAT-tuner[%d]\n", i);
315 return ret; 315 return ret;
316 } 316 }
317 } 317 }
318 ret = pt3_init_all_mxl301rf(pt3); 318 ret = pt3_init_all_mxl301rf(pt3);
319 if (ret < 0) { 319 if (ret < 0) {
320 dev_warn(&pt3->pdev->dev, "Failed to init TERR-tuners."); 320 dev_warn(&pt3->pdev->dev, "Failed to init TERR-tuners\n");
321 return ret; 321 return ret;
322 } 322 }
323 323
324 ret = pt3_set_tuner_power(pt3, true, true); 324 ret = pt3_set_tuner_power(pt3, true, true);
325 if (ret < 0) { 325 if (ret < 0) {
326 dev_warn(&pt3->pdev->dev, "Failed to control tuner module."); 326 dev_warn(&pt3->pdev->dev, "Failed to control tuner module\n");
327 return ret; 327 return ret;
328 } 328 }
329 329
@@ -344,7 +344,7 @@ static int pt3_fe_init(struct pt3_board *pt3)
344 } 344 }
345 if (ret < 0) { 345 if (ret < 0) {
346 dev_warn(&pt3->pdev->dev, 346 dev_warn(&pt3->pdev->dev,
347 "Failed in initial tuning of tuner[%d].", i); 347 "Failed in initial tuning of tuner[%d]\n", i);
348 return ret; 348 return ret;
349 } 349 }
350 } 350 }
@@ -366,7 +366,7 @@ static int pt3_fe_init(struct pt3_board *pt3)
366 fe->ops.set_lna = &pt3_set_lna; 366 fe->ops.set_lna = &pt3_set_lna;
367 } 367 }
368 if (i < PT3_NUM_FE) { 368 if (i < PT3_NUM_FE) {
369 dev_warn(&pt3->pdev->dev, "FE[%d] failed to standby.", i); 369 dev_warn(&pt3->pdev->dev, "FE[%d] failed to standby\n", i);
370 return ret; 370 return ret;
371 } 371 }
372 return 0; 372 return 0;
@@ -453,8 +453,8 @@ static int pt3_fetch_thread(void *data)
453 pt3_init_dmabuf(adap); 453 pt3_init_dmabuf(adap);
454 adap->num_discard = PT3_INITIAL_BUF_DROPS; 454 adap->num_discard = PT3_INITIAL_BUF_DROPS;
455 455
456 dev_dbg(adap->dvb_adap.device, 456 dev_dbg(adap->dvb_adap.device, "PT3: [%s] started\n",
457 "PT3: [%s] started.\n", adap->thread->comm); 457 adap->thread->comm);
458 set_freezable(); 458 set_freezable();
459 while (!kthread_freezable_should_stop(&was_frozen)) { 459 while (!kthread_freezable_should_stop(&was_frozen)) {
460 if (was_frozen) 460 if (was_frozen)
@@ -468,8 +468,8 @@ static int pt3_fetch_thread(void *data)
468 PT3_FETCH_DELAY_DELTA * NSEC_PER_MSEC, 468 PT3_FETCH_DELAY_DELTA * NSEC_PER_MSEC,
469 HRTIMER_MODE_REL); 469 HRTIMER_MODE_REL);
470 } 470 }
471 dev_dbg(adap->dvb_adap.device, 471 dev_dbg(adap->dvb_adap.device, "PT3: [%s] exited\n",
472 "PT3: [%s] exited.\n", adap->thread->comm); 472 adap->thread->comm);
473 adap->thread = NULL; 473 adap->thread = NULL;
474 return 0; 474 return 0;
475} 475}
@@ -485,8 +485,8 @@ static int pt3_start_streaming(struct pt3_adapter *adap)
485 int ret = PTR_ERR(thread); 485 int ret = PTR_ERR(thread);
486 486
487 dev_warn(adap->dvb_adap.device, 487 dev_warn(adap->dvb_adap.device,
488 "PT3 (adap:%d, dmx:%d): failed to start kthread.\n", 488 "PT3 (adap:%d, dmx:%d): failed to start kthread\n",
489 adap->dvb_adap.num, adap->dmxdev.dvbdev->id); 489 adap->dvb_adap.num, adap->dmxdev.dvbdev->id);
490 return ret; 490 return ret;
491 } 491 }
492 adap->thread = thread; 492 adap->thread = thread;
@@ -501,8 +501,8 @@ static int pt3_stop_streaming(struct pt3_adapter *adap)
501 ret = pt3_stop_dma(adap); 501 ret = pt3_stop_dma(adap);
502 if (ret) 502 if (ret)
503 dev_warn(adap->dvb_adap.device, 503 dev_warn(adap->dvb_adap.device,
504 "PT3: failed to stop streaming of adap:%d/FE:%d\n", 504 "PT3: failed to stop streaming of adap:%d/FE:%d\n",
505 adap->dvb_adap.num, adap->fe->id); 505 adap->dvb_adap.num, adap->fe->id);
506 506
507 /* kill the fetching thread */ 507 /* kill the fetching thread */
508 ret = kthread_stop(adap->thread); 508 ret = kthread_stop(adap->thread);
@@ -522,8 +522,8 @@ static int pt3_start_feed(struct dvb_demux_feed *feed)
522 return 0; 522 return 0;
523 if (adap->num_feeds != 1) { 523 if (adap->num_feeds != 1) {
524 dev_warn(adap->dvb_adap.device, 524 dev_warn(adap->dvb_adap.device,
525 "%s: unmatched start/stop_feed in adap:%i/dmx:%i.\n", 525 "%s: unmatched start/stop_feed in adap:%i/dmx:%i\n",
526 __func__, adap->dvb_adap.num, adap->dmxdev.dvbdev->id); 526 __func__, adap->dvb_adap.num, adap->dmxdev.dvbdev->id);
527 adap->num_feeds = 1; 527 adap->num_feeds = 1;
528 } 528 }
529 529
@@ -553,10 +553,9 @@ static int pt3_alloc_adapter(struct pt3_board *pt3, int index)
553 struct dvb_adapter *da; 553 struct dvb_adapter *da;
554 554
555 adap = kzalloc(sizeof(*adap), GFP_KERNEL); 555 adap = kzalloc(sizeof(*adap), GFP_KERNEL);
556 if (!adap) { 556 if (!adap)
557 dev_err(&pt3->pdev->dev, "failed to alloc mem for adapter.\n");
558 return -ENOMEM; 557 return -ENOMEM;
559 } 558
560 pt3->adaps[index] = adap; 559 pt3->adaps[index] = adap;
561 adap->adap_idx = index; 560 adap->adap_idx = index;
562 561
@@ -565,7 +564,7 @@ static int pt3_alloc_adapter(struct pt3_board *pt3, int index)
565 THIS_MODULE, &pt3->pdev->dev, adapter_nr); 564 THIS_MODULE, &pt3->pdev->dev, adapter_nr);
566 if (ret < 0) { 565 if (ret < 0) {
567 dev_err(&pt3->pdev->dev, 566 dev_err(&pt3->pdev->dev,
568 "failed to register adapter dev.\n"); 567 "failed to register adapter dev\n");
569 goto err_mem; 568 goto err_mem;
570 } 569 }
571 da = &adap->dvb_adap; 570 da = &adap->dvb_adap;
@@ -581,7 +580,7 @@ static int pt3_alloc_adapter(struct pt3_board *pt3, int index)
581 adap->demux.stop_feed = pt3_stop_feed; 580 adap->demux.stop_feed = pt3_stop_feed;
582 ret = dvb_dmx_init(&adap->demux); 581 ret = dvb_dmx_init(&adap->demux);
583 if (ret < 0) { 582 if (ret < 0) {
584 dev_err(&pt3->pdev->dev, "failed to init dmx dev.\n"); 583 dev_err(&pt3->pdev->dev, "failed to init dmx dev\n");
585 goto err_adap; 584 goto err_adap;
586 } 585 }
587 586
@@ -589,13 +588,13 @@ static int pt3_alloc_adapter(struct pt3_board *pt3, int index)
589 adap->dmxdev.demux = &adap->demux.dmx; 588 adap->dmxdev.demux = &adap->demux.dmx;
590 ret = dvb_dmxdev_init(&adap->dmxdev, da); 589 ret = dvb_dmxdev_init(&adap->dmxdev, da);
591 if (ret < 0) { 590 if (ret < 0) {
592 dev_err(&pt3->pdev->dev, "failed to init dmxdev.\n"); 591 dev_err(&pt3->pdev->dev, "failed to init dmxdev\n");
593 goto err_demux; 592 goto err_demux;
594 } 593 }
595 594
596 ret = pt3_alloc_dmabuf(adap); 595 ret = pt3_alloc_dmabuf(adap);
597 if (ret) { 596 if (ret) {
598 dev_err(&pt3->pdev->dev, "failed to alloc DMA buffers.\n"); 597 dev_err(&pt3->pdev->dev, "failed to alloc DMA buffers\n");
599 goto err_dmabuf; 598 goto err_dmabuf;
600 } 599 }
601 600
@@ -695,7 +694,7 @@ static int pt3_resume(struct device *dev)
695 dvb_frontend_resume(adap->fe); 694 dvb_frontend_resume(adap->fe);
696 ret = pt3_alloc_dmabuf(adap); 695 ret = pt3_alloc_dmabuf(adap);
697 if (ret) { 696 if (ret) {
698 dev_err(&pt3->pdev->dev, "failed to alloc DMA bufs.\n"); 697 dev_err(&pt3->pdev->dev, "failed to alloc DMA bufs\n");
699 continue; 698 continue;
700 } 699 }
701 if (adap->num_feeds > 0) 700 if (adap->num_feeds > 0)
@@ -753,15 +752,14 @@ static int pt3_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
753 if (ret == 0) 752 if (ret == 0)
754 dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); 753 dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
755 else { 754 else {
756 dev_err(&pdev->dev, "Failed to set DMA mask.\n"); 755 dev_err(&pdev->dev, "Failed to set DMA mask\n");
757 goto err_release_regions; 756 goto err_release_regions;
758 } 757 }
759 dev_info(&pdev->dev, "Use 32bit DMA.\n"); 758 dev_info(&pdev->dev, "Use 32bit DMA\n");
760 } 759 }
761 760
762 pt3 = kzalloc(sizeof(*pt3), GFP_KERNEL); 761 pt3 = kzalloc(sizeof(*pt3), GFP_KERNEL);
763 if (!pt3) { 762 if (!pt3) {
764 dev_err(&pdev->dev, "Failed to alloc mem for this dev.\n");
765 ret = -ENOMEM; 763 ret = -ENOMEM;
766 goto err_release_regions; 764 goto err_release_regions;
767 } 765 }
@@ -771,15 +769,15 @@ static int pt3_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
771 pt3->regs[0] = pci_ioremap_bar(pdev, 0); 769 pt3->regs[0] = pci_ioremap_bar(pdev, 0);
772 pt3->regs[1] = pci_ioremap_bar(pdev, 2); 770 pt3->regs[1] = pci_ioremap_bar(pdev, 2);
773 if (pt3->regs[0] == NULL || pt3->regs[1] == NULL) { 771 if (pt3->regs[0] == NULL || pt3->regs[1] == NULL) {
774 dev_err(&pdev->dev, "Failed to ioremap.\n"); 772 dev_err(&pdev->dev, "Failed to ioremap\n");
775 ret = -ENOMEM; 773 ret = -ENOMEM;
776 goto err_kfree; 774 goto err_kfree;
777 } 775 }
778 776
779 ver = ioread32(pt3->regs[0] + REG_VERSION); 777 ver = ioread32(pt3->regs[0] + REG_VERSION);
780 if ((ver >> 16) != 0x0301) { 778 if ((ver >> 16) != 0x0301) {
781 dev_warn(&pdev->dev, "PT%d, I/F-ver.:%d not supported", 779 dev_warn(&pdev->dev, "PT%d, I/F-ver.:%d not supported\n",
782 ver >> 24, (ver & 0x00ff0000) >> 16); 780 ver >> 24, (ver & 0x00ff0000) >> 16);
783 ret = -ENODEV; 781 ret = -ENODEV;
784 goto err_iounmap; 782 goto err_iounmap;
785 } 783 }
@@ -788,7 +786,6 @@ static int pt3_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
788 786
789 pt3->i2c_buf = kmalloc(sizeof(*pt3->i2c_buf), GFP_KERNEL); 787 pt3->i2c_buf = kmalloc(sizeof(*pt3->i2c_buf), GFP_KERNEL);
790 if (pt3->i2c_buf == NULL) { 788 if (pt3->i2c_buf == NULL) {
791 dev_err(&pdev->dev, "Failed to alloc mem for i2c.\n");
792 ret = -ENOMEM; 789 ret = -ENOMEM;
793 goto err_iounmap; 790 goto err_iounmap;
794 } 791 }
@@ -801,7 +798,7 @@ static int pt3_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
801 i2c_set_adapdata(i2c, pt3); 798 i2c_set_adapdata(i2c, pt3);
802 ret = i2c_add_adapter(i2c); 799 ret = i2c_add_adapter(i2c);
803 if (ret < 0) { 800 if (ret < 0) {
804 dev_err(&pdev->dev, "Failed to add i2c adapter.\n"); 801 dev_err(&pdev->dev, "Failed to add i2c adapter\n");
805 goto err_i2cbuf; 802 goto err_i2cbuf;
806 } 803 }
807 804
@@ -815,20 +812,20 @@ static int pt3_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
815 break; 812 break;
816 } 813 }
817 if (i < PT3_NUM_FE) { 814 if (i < PT3_NUM_FE) {
818 dev_err(&pdev->dev, "Failed to create FE%d.\n", i); 815 dev_err(&pdev->dev, "Failed to create FE%d\n", i);
819 goto err_cleanup_adapters; 816 goto err_cleanup_adapters;
820 } 817 }
821 818
822 ret = pt3_fe_init(pt3); 819 ret = pt3_fe_init(pt3);
823 if (ret < 0) { 820 if (ret < 0) {
824 dev_err(&pdev->dev, "Failed to init frontends.\n"); 821 dev_err(&pdev->dev, "Failed to init frontends\n");
825 i = PT3_NUM_FE - 1; 822 i = PT3_NUM_FE - 1;
826 goto err_cleanup_adapters; 823 goto err_cleanup_adapters;
827 } 824 }
828 825
829 dev_info(&pdev->dev, 826 dev_info(&pdev->dev,
830 "successfully init'ed PT%d (fw:0x%02x, I/F:0x%02x).\n", 827 "successfully init'ed PT%d (fw:0x%02x, I/F:0x%02x)\n",
831 ver >> 24, (ver >> 8) & 0xff, (ver >> 16) & 0xff); 828 ver >> 24, (ver >> 8) & 0xff, (ver >> 16) & 0xff);
832 return 0; 829 return 0;
833 830
834err_cleanup_adapters: 831err_cleanup_adapters: