Messages in this thread | | | Date | Fri, 9 Oct 2020 13:19:41 +0800 | From | kernel test robot <> | Subject | [gustavoars-linux:for-next/clang-ft 2/3] drivers/media/dvb-frontends/m88ds3103.c:910:2: warning: unannotated fall-through between switch labels |
| |
tree: https://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux.git for-next/clang-ft head: de6b606b07e40c037ed4f83b53ee541692a78c6e commit: 7d30604536de43168b1eae0a4a938bcbca7786d2 [2/3] Revert "kbuild: Do not enable -Wimplicit-fallthrough for clang for now" config: x86_64-randconfig-a003-20201009 (attached as .config) compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 4cfc4025cc1433ca5ef1c526053fc9c4bfe64109) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install x86_64 cross compiling tool for clang build # apt-get install binutils-x86-64-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux.git/commit/?id=7d30604536de43168b1eae0a4a938bcbca7786d2 git remote add gustavoars-linux https://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux.git git fetch --no-tags gustavoars-linux for-next/clang-ft git checkout 7d30604536de43168b1eae0a4a938bcbca7786d2 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
In file included from drivers/media/dvb-frontends/m88ds3103.c:8: In file included from drivers/media/dvb-frontends/m88ds3103_priv.h:11: In file included from include/media/dvb_frontend.h:48: In file included from include/media/dvbdev.h:23: In file included from include/linux/poll.h:10: In file included from include/linux/fs.h:33: In file included from include/linux/percpu-rwsem.h:7: In file included from include/linux/rcuwait.h:6: In file included from include/linux/sched/signal.h:6: include/linux/signal.h:241:2: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] case 1: ; ^ include/linux/signal.h:241:2: note: insert '__attribute__((fallthrough));' to silence this warning case 1: ; ^ __attribute__((fallthrough)); include/linux/signal.h:241:2: note: insert 'break;' to avoid fall-through case 1: ; ^ break; include/linux/signal.h:253:2: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] case 1: ; ^ include/linux/signal.h:253:2: note: insert '__attribute__((fallthrough));' to silence this warning case 1: ; ^ __attribute__((fallthrough)); include/linux/signal.h:253:2: note: insert 'break;' to avoid fall-through case 1: ; ^ break; >> drivers/media/dvb-frontends/m88ds3103.c:910:2: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] default: ^ drivers/media/dvb-frontends/m88ds3103.c:910:2: note: insert '__attribute__((fallthrough));' to silence this warning default: ^ __attribute__((fallthrough)); drivers/media/dvb-frontends/m88ds3103.c:910:2: note: insert 'break;' to avoid fall-through default: ^ break; 3 warnings generated. -- In file included from drivers/media/cec/core/cec-pin.c:10: In file included from include/media/cec-pin.h:12: In file included from include/media/cec.h:11: In file included from include/linux/poll.h:10: In file included from include/linux/fs.h:33: In file included from include/linux/percpu-rwsem.h:7: In file included from include/linux/rcuwait.h:6: In file included from include/linux/sched/signal.h:6: include/linux/signal.h:241:2: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] case 1: ; ^ include/linux/signal.h:241:2: note: insert '__attribute__((fallthrough));' to silence this warning case 1: ; ^ __attribute__((fallthrough)); include/linux/signal.h:241:2: note: insert 'break;' to avoid fall-through case 1: ; ^ break; include/linux/signal.h:253:2: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] case 1: ; ^ include/linux/signal.h:253:2: note: insert '__attribute__((fallthrough));' to silence this warning case 1: ; ^ __attribute__((fallthrough)); include/linux/signal.h:253:2: note: insert 'break;' to avoid fall-through case 1: ; ^ break; >> drivers/media/cec/core/cec-pin.c:421:2: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] case CEC_ST_TX_DATA_BIT_0_HIGH: ^ drivers/media/cec/core/cec-pin.c:421:2: note: insert '__attribute__((fallthrough));' to silence this warning case CEC_ST_TX_DATA_BIT_0_HIGH: ^ __attribute__((fallthrough)); drivers/media/cec/core/cec-pin.c:421:2: note: insert 'break;' to avoid fall-through case CEC_ST_TX_DATA_BIT_0_HIGH: ^ break; drivers/media/cec/core/cec-pin.c:449:2: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] case CEC_ST_TX_DATA_BIT_HIGH_CUSTOM: ^ drivers/media/cec/core/cec-pin.c:449:2: note: insert '__attribute__((fallthrough));' to silence this warning case CEC_ST_TX_DATA_BIT_HIGH_CUSTOM: ^ __attribute__((fallthrough)); drivers/media/cec/core/cec-pin.c:449:2: note: insert 'break;' to avoid fall-through case CEC_ST_TX_DATA_BIT_HIGH_CUSTOM: ^ break; drivers/media/cec/core/cec-pin.c:463:2: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] case CEC_ST_TX_START_BIT_HIGH: ^ drivers/media/cec/core/cec-pin.c:463:2: note: insert '__attribute__((fallthrough));' to silence this warning case CEC_ST_TX_START_BIT_HIGH: ^ __attribute__((fallthrough)); drivers/media/cec/core/cec-pin.c:463:2: note: insert 'break;' to avoid fall-through case CEC_ST_TX_START_BIT_HIGH: ^ break; 5 warnings generated. -- >> drivers/media/test-drivers/vivid/vivid-vbi-gen.c:302:2: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] case 1 ... 7: ^ drivers/media/test-drivers/vivid/vivid-vbi-gen.c:302:2: note: insert '__attribute__((fallthrough));' to silence this warning case 1 ... 7: ^ __attribute__((fallthrough)); drivers/media/test-drivers/vivid/vivid-vbi-gen.c:302:2: note: insert 'break;' to avoid fall-through case 1 ... 7: ^ break; 1 warning generated.
vim +910 drivers/media/dvb-frontends/m88ds3103.c
e6089feca460cb4 Brad Love 2020-02-01 621 395d00d1ca89478 Antti Palosaari 2013-02-25 622 static int m88ds3103_set_frontend(struct dvb_frontend *fe) 395d00d1ca89478 Antti Palosaari 2013-02-25 623 { 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 624 struct m88ds3103_dev *dev = fe->demodulator_priv; 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 625 struct i2c_client *client = dev->client; 395d00d1ca89478 Antti Palosaari 2013-02-25 626 struct dtv_frontend_properties *c = &fe->dtv_property_cache; 06487dee53ae157 Antti Palosaari 2013-12-02 627 int ret, len; 395d00d1ca89478 Antti Palosaari 2013-02-25 628 const struct m88ds3103_reg_val *init; b6851419409664b nibble.max 2014-11-05 629 u8 u8tmp, u8tmp1 = 0, u8tmp2 = 0; /* silence compiler warning */ f4df95bcbb7b142 nibble.max 2014-10-30 630 u8 buf[3]; 334ef18e879980e Antti Palosaari 2016-06-29 631 u16 u16tmp; e6089feca460cb4 Brad Love 2020-02-01 632 u32 tuner_frequency_khz, target_mclk, u32tmp; 395d00d1ca89478 Antti Palosaari 2013-02-25 633 s32 s32tmp; 981fbe3da20a6f3 James Hutchinson 2019-01-13 634 static const struct reg_sequence reset_buf[] = { 981fbe3da20a6f3 James Hutchinson 2019-01-13 635 {0x07, 0x80}, {0x07, 0x00} 981fbe3da20a6f3 James Hutchinson 2019-01-13 636 }; 41b9aa0040526d1 Antti Palosaari 2014-08-21 637 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 638 dev_dbg(&client->dev, 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 639 "delivery_system=%d modulation=%d frequency=%u symbol_rate=%d inversion=%d pilot=%d rolloff=%d\n", 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 640 c->delivery_system, c->modulation, c->frequency, c->symbol_rate, 395d00d1ca89478 Antti Palosaari 2013-02-25 641 c->inversion, c->pilot, c->rolloff); 395d00d1ca89478 Antti Palosaari 2013-02-25 642 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 643 if (!dev->warm) { 395d00d1ca89478 Antti Palosaari 2013-02-25 644 ret = -EAGAIN; 395d00d1ca89478 Antti Palosaari 2013-02-25 645 goto err; 395d00d1ca89478 Antti Palosaari 2013-02-25 646 } 395d00d1ca89478 Antti Palosaari 2013-02-25 647 f4df95bcbb7b142 nibble.max 2014-10-30 648 /* reset */ 981fbe3da20a6f3 James Hutchinson 2019-01-13 649 ret = regmap_multi_reg_write(dev->regmap, reset_buf, 2); f4df95bcbb7b142 nibble.max 2014-10-30 650 if (ret) f4df95bcbb7b142 nibble.max 2014-10-30 651 goto err; f4df95bcbb7b142 nibble.max 2014-10-30 652 f4df95bcbb7b142 nibble.max 2014-10-30 653 /* Disable demod clock path */ 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 654 if (dev->chip_id == M88RS6000_CHIP_ID) { e6089feca460cb4 Brad Love 2020-02-01 655 if (dev->chiptype == M88DS3103_CHIPTYPE_3103B) { e6089feca460cb4 Brad Love 2020-02-01 656 ret = regmap_read(dev->regmap, 0xb2, &u32tmp); e6089feca460cb4 Brad Love 2020-02-01 657 if (ret) e6089feca460cb4 Brad Love 2020-02-01 658 goto err; e6089feca460cb4 Brad Love 2020-02-01 659 if (u32tmp == 0x01) { e6089feca460cb4 Brad Love 2020-02-01 660 ret = regmap_write(dev->regmap, 0x00, 0x00); e6089feca460cb4 Brad Love 2020-02-01 661 if (ret) e6089feca460cb4 Brad Love 2020-02-01 662 goto err; e6089feca460cb4 Brad Love 2020-02-01 663 ret = regmap_write(dev->regmap, 0xb2, 0x00); e6089feca460cb4 Brad Love 2020-02-01 664 if (ret) e6089feca460cb4 Brad Love 2020-02-01 665 goto err; e6089feca460cb4 Brad Love 2020-02-01 666 } e6089feca460cb4 Brad Love 2020-02-01 667 } e6089feca460cb4 Brad Love 2020-02-01 668 478932b16052f5d Antti Palosaari 2015-04-16 669 ret = regmap_write(dev->regmap, 0x06, 0xe0); f4df95bcbb7b142 nibble.max 2014-10-30 670 if (ret) f4df95bcbb7b142 nibble.max 2014-10-30 671 goto err; f4df95bcbb7b142 nibble.max 2014-10-30 672 } f4df95bcbb7b142 nibble.max 2014-10-30 673 395d00d1ca89478 Antti Palosaari 2013-02-25 674 /* program tuner */ 395d00d1ca89478 Antti Palosaari 2013-02-25 675 if (fe->ops.tuner_ops.set_params) { 395d00d1ca89478 Antti Palosaari 2013-02-25 676 ret = fe->ops.tuner_ops.set_params(fe); 395d00d1ca89478 Antti Palosaari 2013-02-25 677 if (ret) 395d00d1ca89478 Antti Palosaari 2013-02-25 678 goto err; 395d00d1ca89478 Antti Palosaari 2013-02-25 679 } 395d00d1ca89478 Antti Palosaari 2013-02-25 680 395d00d1ca89478 Antti Palosaari 2013-02-25 681 if (fe->ops.tuner_ops.get_frequency) { f5d9b88db7222bf Antti Palosaari 2016-06-29 682 ret = fe->ops.tuner_ops.get_frequency(fe, &tuner_frequency_khz); 395d00d1ca89478 Antti Palosaari 2013-02-25 683 if (ret) 395d00d1ca89478 Antti Palosaari 2013-02-25 684 goto err; 2f9dff3f39f0d6d Antti Palosaari 2014-02-01 685 } else { 2f9dff3f39f0d6d Antti Palosaari 2014-02-01 686 /* 2f9dff3f39f0d6d Antti Palosaari 2014-02-01 687 * Use nominal target frequency as tuner driver does not provide 2f9dff3f39f0d6d Antti Palosaari 2014-02-01 688 * actual frequency used. Carrier offset calculation is not 2f9dff3f39f0d6d Antti Palosaari 2014-02-01 689 * valid. 2f9dff3f39f0d6d Antti Palosaari 2014-02-01 690 */ f5d9b88db7222bf Antti Palosaari 2016-06-29 691 tuner_frequency_khz = c->frequency; 395d00d1ca89478 Antti Palosaari 2013-02-25 692 } 395d00d1ca89478 Antti Palosaari 2013-02-25 693 e6089feca460cb4 Brad Love 2020-02-01 694 /* set M88RS6000/DS3103B demod main mclk and ts mclk from tuner die */ 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 695 if (dev->chip_id == M88RS6000_CHIP_ID) { f4df95bcbb7b142 nibble.max 2014-10-30 696 if (c->symbol_rate > 45010000) f5d9b88db7222bf Antti Palosaari 2016-06-29 697 dev->mclk = 110250000; f4df95bcbb7b142 nibble.max 2014-10-30 698 else f5d9b88db7222bf Antti Palosaari 2016-06-29 699 dev->mclk = 96000000; 395d00d1ca89478 Antti Palosaari 2013-02-25 700 f4df95bcbb7b142 nibble.max 2014-10-30 701 if (c->delivery_system == SYS_DVBS) f5d9b88db7222bf Antti Palosaari 2016-06-29 702 target_mclk = 96000000; f4df95bcbb7b142 nibble.max 2014-10-30 703 else f5d9b88db7222bf Antti Palosaari 2016-06-29 704 target_mclk = 144000000; 395d00d1ca89478 Antti Palosaari 2013-02-25 705 e6089feca460cb4 Brad Love 2020-02-01 706 if (dev->chiptype == M88DS3103_CHIPTYPE_3103B) { e6089feca460cb4 Brad Love 2020-02-01 707 m88ds3103b_select_mclk(dev); e6089feca460cb4 Brad Love 2020-02-01 708 m88ds3103b_set_mclk(dev, target_mclk / 1000); e6089feca460cb4 Brad Love 2020-02-01 709 } e6089feca460cb4 Brad Love 2020-02-01 710 f4df95bcbb7b142 nibble.max 2014-10-30 711 /* Enable demod clock path */ 478932b16052f5d Antti Palosaari 2015-04-16 712 ret = regmap_write(dev->regmap, 0x06, 0x00); 395d00d1ca89478 Antti Palosaari 2013-02-25 713 if (ret) 395d00d1ca89478 Antti Palosaari 2013-02-25 714 goto err; f4df95bcbb7b142 nibble.max 2014-10-30 715 usleep_range(10000, 20000); f4df95bcbb7b142 nibble.max 2014-10-30 716 } else { f4df95bcbb7b142 nibble.max 2014-10-30 717 /* set M88DS3103 mclk and ts mclk. */ f5d9b88db7222bf Antti Palosaari 2016-06-29 718 dev->mclk = 96000000; 395d00d1ca89478 Antti Palosaari 2013-02-25 719 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 720 switch (dev->cfg->ts_mode) { 395d00d1ca89478 Antti Palosaari 2013-02-25 721 case M88DS3103_TS_SERIAL: 395d00d1ca89478 Antti Palosaari 2013-02-25 722 case M88DS3103_TS_SERIAL_D7: 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 723 target_mclk = dev->cfg->ts_clk; 395d00d1ca89478 Antti Palosaari 2013-02-25 724 break; 395d00d1ca89478 Antti Palosaari 2013-02-25 725 case M88DS3103_TS_PARALLEL: 395d00d1ca89478 Antti Palosaari 2013-02-25 726 case M88DS3103_TS_CI: b6851419409664b nibble.max 2014-11-05 727 if (c->delivery_system == SYS_DVBS) f5d9b88db7222bf Antti Palosaari 2016-06-29 728 target_mclk = 96000000; b6851419409664b nibble.max 2014-11-05 729 else { 395d00d1ca89478 Antti Palosaari 2013-02-25 730 if (c->symbol_rate < 18000000) f5d9b88db7222bf Antti Palosaari 2016-06-29 731 target_mclk = 96000000; 395d00d1ca89478 Antti Palosaari 2013-02-25 732 else if (c->symbol_rate < 28000000) f5d9b88db7222bf Antti Palosaari 2016-06-29 733 target_mclk = 144000000; 395d00d1ca89478 Antti Palosaari 2013-02-25 734 else f5d9b88db7222bf Antti Palosaari 2016-06-29 735 target_mclk = 192000000; b6851419409664b nibble.max 2014-11-05 736 } 395d00d1ca89478 Antti Palosaari 2013-02-25 737 break; 395d00d1ca89478 Antti Palosaari 2013-02-25 738 default: 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 739 dev_dbg(&client->dev, "invalid ts_mode\n"); 395d00d1ca89478 Antti Palosaari 2013-02-25 740 ret = -EINVAL; 395d00d1ca89478 Antti Palosaari 2013-02-25 741 goto err; 395d00d1ca89478 Antti Palosaari 2013-02-25 742 } f4df95bcbb7b142 nibble.max 2014-10-30 743 f4df95bcbb7b142 nibble.max 2014-10-30 744 switch (target_mclk) { f5d9b88db7222bf Antti Palosaari 2016-06-29 745 case 96000000: f4df95bcbb7b142 nibble.max 2014-10-30 746 u8tmp1 = 0x02; /* 0b10 */ f4df95bcbb7b142 nibble.max 2014-10-30 747 u8tmp2 = 0x01; /* 0b01 */ f4df95bcbb7b142 nibble.max 2014-10-30 748 break; f5d9b88db7222bf Antti Palosaari 2016-06-29 749 case 144000000: f4df95bcbb7b142 nibble.max 2014-10-30 750 u8tmp1 = 0x00; /* 0b00 */ f4df95bcbb7b142 nibble.max 2014-10-30 751 u8tmp2 = 0x01; /* 0b01 */ f4df95bcbb7b142 nibble.max 2014-10-30 752 break; f5d9b88db7222bf Antti Palosaari 2016-06-29 753 case 192000000: f4df95bcbb7b142 nibble.max 2014-10-30 754 u8tmp1 = 0x03; /* 0b11 */ f4df95bcbb7b142 nibble.max 2014-10-30 755 u8tmp2 = 0x00; /* 0b00 */ f4df95bcbb7b142 nibble.max 2014-10-30 756 break; f4df95bcbb7b142 nibble.max 2014-10-30 757 } 56ea37da3b93dfe Antti Palosaari 2015-10-03 758 ret = m88ds3103_update_bits(dev, 0x22, 0xc0, u8tmp1 << 6); f4df95bcbb7b142 nibble.max 2014-10-30 759 if (ret) f4df95bcbb7b142 nibble.max 2014-10-30 760 goto err; 56ea37da3b93dfe Antti Palosaari 2015-10-03 761 ret = m88ds3103_update_bits(dev, 0x24, 0xc0, u8tmp2 << 6); f4df95bcbb7b142 nibble.max 2014-10-30 762 if (ret) f4df95bcbb7b142 nibble.max 2014-10-30 763 goto err; f4df95bcbb7b142 nibble.max 2014-10-30 764 } f4df95bcbb7b142 nibble.max 2014-10-30 765 478932b16052f5d Antti Palosaari 2015-04-16 766 ret = regmap_write(dev->regmap, 0xb2, 0x01); f4df95bcbb7b142 nibble.max 2014-10-30 767 if (ret) f4df95bcbb7b142 nibble.max 2014-10-30 768 goto err; f4df95bcbb7b142 nibble.max 2014-10-30 769 478932b16052f5d Antti Palosaari 2015-04-16 770 ret = regmap_write(dev->regmap, 0x00, 0x01); f4df95bcbb7b142 nibble.max 2014-10-30 771 if (ret) f4df95bcbb7b142 nibble.max 2014-10-30 772 goto err; f4df95bcbb7b142 nibble.max 2014-10-30 773 f4df95bcbb7b142 nibble.max 2014-10-30 774 switch (c->delivery_system) { f4df95bcbb7b142 nibble.max 2014-10-30 775 case SYS_DVBS: 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 776 if (dev->chip_id == M88RS6000_CHIP_ID) { f4df95bcbb7b142 nibble.max 2014-10-30 777 len = ARRAY_SIZE(m88rs6000_dvbs_init_reg_vals); f4df95bcbb7b142 nibble.max 2014-10-30 778 init = m88rs6000_dvbs_init_reg_vals; f4df95bcbb7b142 nibble.max 2014-10-30 779 } else { f4df95bcbb7b142 nibble.max 2014-10-30 780 len = ARRAY_SIZE(m88ds3103_dvbs_init_reg_vals); f4df95bcbb7b142 nibble.max 2014-10-30 781 init = m88ds3103_dvbs_init_reg_vals; f4df95bcbb7b142 nibble.max 2014-10-30 782 } f4df95bcbb7b142 nibble.max 2014-10-30 783 break; f4df95bcbb7b142 nibble.max 2014-10-30 784 case SYS_DVBS2: 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 785 if (dev->chip_id == M88RS6000_CHIP_ID) { f4df95bcbb7b142 nibble.max 2014-10-30 786 len = ARRAY_SIZE(m88rs6000_dvbs2_init_reg_vals); f4df95bcbb7b142 nibble.max 2014-10-30 787 init = m88rs6000_dvbs2_init_reg_vals; f4df95bcbb7b142 nibble.max 2014-10-30 788 } else { f4df95bcbb7b142 nibble.max 2014-10-30 789 len = ARRAY_SIZE(m88ds3103_dvbs2_init_reg_vals); f4df95bcbb7b142 nibble.max 2014-10-30 790 init = m88ds3103_dvbs2_init_reg_vals; f4df95bcbb7b142 nibble.max 2014-10-30 791 } 395d00d1ca89478 Antti Palosaari 2013-02-25 792 break; 395d00d1ca89478 Antti Palosaari 2013-02-25 793 default: 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 794 dev_dbg(&client->dev, "invalid delivery_system\n"); 395d00d1ca89478 Antti Palosaari 2013-02-25 795 ret = -EINVAL; 395d00d1ca89478 Antti Palosaari 2013-02-25 796 goto err; 395d00d1ca89478 Antti Palosaari 2013-02-25 797 } 395d00d1ca89478 Antti Palosaari 2013-02-25 798 395d00d1ca89478 Antti Palosaari 2013-02-25 799 /* program init table */ 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 800 if (c->delivery_system != dev->delivery_system) { 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 801 ret = m88ds3103_wr_reg_val_tab(dev, init, len); 395d00d1ca89478 Antti Palosaari 2013-02-25 802 if (ret) 395d00d1ca89478 Antti Palosaari 2013-02-25 803 goto err; 395d00d1ca89478 Antti Palosaari 2013-02-25 804 } 395d00d1ca89478 Antti Palosaari 2013-02-25 805 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 806 if (dev->chip_id == M88RS6000_CHIP_ID) { f5d9b88db7222bf Antti Palosaari 2016-06-29 807 if (c->delivery_system == SYS_DVBS2 && f5d9b88db7222bf Antti Palosaari 2016-06-29 808 c->symbol_rate <= 5000000) { 478932b16052f5d Antti Palosaari 2015-04-16 809 ret = regmap_write(dev->regmap, 0xc0, 0x04); f4df95bcbb7b142 nibble.max 2014-10-30 810 if (ret) f4df95bcbb7b142 nibble.max 2014-10-30 811 goto err; f4df95bcbb7b142 nibble.max 2014-10-30 812 buf[0] = 0x09; f4df95bcbb7b142 nibble.max 2014-10-30 813 buf[1] = 0x22; f4df95bcbb7b142 nibble.max 2014-10-30 814 buf[2] = 0x88; 478932b16052f5d Antti Palosaari 2015-04-16 815 ret = regmap_bulk_write(dev->regmap, 0x8a, buf, 3); f4df95bcbb7b142 nibble.max 2014-10-30 816 if (ret) f4df95bcbb7b142 nibble.max 2014-10-30 817 goto err; f4df95bcbb7b142 nibble.max 2014-10-30 818 } 56ea37da3b93dfe Antti Palosaari 2015-10-03 819 ret = m88ds3103_update_bits(dev, 0x9d, 0x08, 0x08); f4df95bcbb7b142 nibble.max 2014-10-30 820 if (ret) f4df95bcbb7b142 nibble.max 2014-10-30 821 goto err; e6089feca460cb4 Brad Love 2020-02-01 822 e6089feca460cb4 Brad Love 2020-02-01 823 if (dev->chiptype == M88DS3103_CHIPTYPE_3103B) { e6089feca460cb4 Brad Love 2020-02-01 824 buf[0] = m88ds3103b_dt_read(dev, 0x15); e6089feca460cb4 Brad Love 2020-02-01 825 buf[1] = m88ds3103b_dt_read(dev, 0x16); e6089feca460cb4 Brad Love 2020-02-01 826 e6089feca460cb4 Brad Love 2020-02-01 827 if (c->symbol_rate > 45010000) { e6089feca460cb4 Brad Love 2020-02-01 828 buf[0] &= ~0x03; e6089feca460cb4 Brad Love 2020-02-01 829 buf[0] |= 0x02; e6089feca460cb4 Brad Love 2020-02-01 830 buf[0] |= ((147 - 32) >> 8) & 0x01; e6089feca460cb4 Brad Love 2020-02-01 831 buf[1] = (147 - 32) & 0xFF; e6089feca460cb4 Brad Love 2020-02-01 832 e6089feca460cb4 Brad Love 2020-02-01 833 dev->mclk = 110250 * 1000; e6089feca460cb4 Brad Love 2020-02-01 834 } else { e6089feca460cb4 Brad Love 2020-02-01 835 buf[0] &= ~0x03; e6089feca460cb4 Brad Love 2020-02-01 836 buf[0] |= ((128 - 32) >> 8) & 0x01; e6089feca460cb4 Brad Love 2020-02-01 837 buf[1] = (128 - 32) & 0xFF; e6089feca460cb4 Brad Love 2020-02-01 838 e6089feca460cb4 Brad Love 2020-02-01 839 dev->mclk = 96000 * 1000; e6089feca460cb4 Brad Love 2020-02-01 840 } e6089feca460cb4 Brad Love 2020-02-01 841 m88ds3103b_dt_write(dev, 0x15, buf[0]); e6089feca460cb4 Brad Love 2020-02-01 842 m88ds3103b_dt_write(dev, 0x16, buf[1]); e6089feca460cb4 Brad Love 2020-02-01 843 e6089feca460cb4 Brad Love 2020-02-01 844 regmap_read(dev->regmap, 0x30, &u32tmp); e6089feca460cb4 Brad Love 2020-02-01 845 u32tmp &= ~0x80; e6089feca460cb4 Brad Love 2020-02-01 846 regmap_write(dev->regmap, 0x30, u32tmp & 0xff); e6089feca460cb4 Brad Love 2020-02-01 847 } e6089feca460cb4 Brad Love 2020-02-01 848 478932b16052f5d Antti Palosaari 2015-04-16 849 ret = regmap_write(dev->regmap, 0xf1, 0x01); f4df95bcbb7b142 nibble.max 2014-10-30 850 if (ret) f4df95bcbb7b142 nibble.max 2014-10-30 851 goto err; e6089feca460cb4 Brad Love 2020-02-01 852 e6089feca460cb4 Brad Love 2020-02-01 853 if (dev->chiptype != M88DS3103_CHIPTYPE_3103B) { 56ea37da3b93dfe Antti Palosaari 2015-10-03 854 ret = m88ds3103_update_bits(dev, 0x30, 0x80, 0x80); f4df95bcbb7b142 nibble.max 2014-10-30 855 if (ret) f4df95bcbb7b142 nibble.max 2014-10-30 856 goto err; f4df95bcbb7b142 nibble.max 2014-10-30 857 } e6089feca460cb4 Brad Love 2020-02-01 858 } f4df95bcbb7b142 nibble.max 2014-10-30 859 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 860 switch (dev->cfg->ts_mode) { 395d00d1ca89478 Antti Palosaari 2013-02-25 861 case M88DS3103_TS_SERIAL: 395d00d1ca89478 Antti Palosaari 2013-02-25 862 u8tmp1 = 0x00; 79d0933032d657e nibble.max 2014-08-11 863 u8tmp = 0x06; 395d00d1ca89478 Antti Palosaari 2013-02-25 864 break; 395d00d1ca89478 Antti Palosaari 2013-02-25 865 case M88DS3103_TS_SERIAL_D7: 395d00d1ca89478 Antti Palosaari 2013-02-25 866 u8tmp1 = 0x20; 79d0933032d657e nibble.max 2014-08-11 867 u8tmp = 0x06; 395d00d1ca89478 Antti Palosaari 2013-02-25 868 break; 395d00d1ca89478 Antti Palosaari 2013-02-25 869 case M88DS3103_TS_PARALLEL: 79d0933032d657e nibble.max 2014-08-11 870 u8tmp = 0x02; e6089feca460cb4 Brad Love 2020-02-01 871 if (dev->chiptype == M88DS3103_CHIPTYPE_3103B) { e6089feca460cb4 Brad Love 2020-02-01 872 u8tmp = 0x01; e6089feca460cb4 Brad Love 2020-02-01 873 u8tmp1 = 0x01; e6089feca460cb4 Brad Love 2020-02-01 874 } 395d00d1ca89478 Antti Palosaari 2013-02-25 875 break; 395d00d1ca89478 Antti Palosaari 2013-02-25 876 case M88DS3103_TS_CI: 79d0933032d657e nibble.max 2014-08-11 877 u8tmp = 0x03; 395d00d1ca89478 Antti Palosaari 2013-02-25 878 break; 395d00d1ca89478 Antti Palosaari 2013-02-25 879 default: 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 880 dev_dbg(&client->dev, "invalid ts_mode\n"); 395d00d1ca89478 Antti Palosaari 2013-02-25 881 ret = -EINVAL; 395d00d1ca89478 Antti Palosaari 2013-02-25 882 goto err; 395d00d1ca89478 Antti Palosaari 2013-02-25 883 } 395d00d1ca89478 Antti Palosaari 2013-02-25 884 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 885 if (dev->cfg->ts_clk_pol) 79d0933032d657e nibble.max 2014-08-11 886 u8tmp |= 0x40; 79d0933032d657e nibble.max 2014-08-11 887 395d00d1ca89478 Antti Palosaari 2013-02-25 888 /* TS mode */ 478932b16052f5d Antti Palosaari 2015-04-16 889 ret = regmap_write(dev->regmap, 0xfd, u8tmp); 395d00d1ca89478 Antti Palosaari 2013-02-25 890 if (ret) 395d00d1ca89478 Antti Palosaari 2013-02-25 891 goto err; 395d00d1ca89478 Antti Palosaari 2013-02-25 892 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 893 switch (dev->cfg->ts_mode) { 395d00d1ca89478 Antti Palosaari 2013-02-25 894 case M88DS3103_TS_SERIAL: 395d00d1ca89478 Antti Palosaari 2013-02-25 895 case M88DS3103_TS_SERIAL_D7: 56ea37da3b93dfe Antti Palosaari 2015-10-03 896 ret = m88ds3103_update_bits(dev, 0x29, 0x20, u8tmp1); 395d00d1ca89478 Antti Palosaari 2013-02-25 897 if (ret) 395d00d1ca89478 Antti Palosaari 2013-02-25 898 goto err; 334ef18e879980e Antti Palosaari 2016-06-29 899 u16tmp = 0; 334ef18e879980e Antti Palosaari 2016-06-29 900 u8tmp1 = 0x3f; 334ef18e879980e Antti Palosaari 2016-06-29 901 u8tmp2 = 0x3f; b6851419409664b nibble.max 2014-11-05 902 break; e6089feca460cb4 Brad Love 2020-02-01 903 case M88DS3103_TS_PARALLEL: e6089feca460cb4 Brad Love 2020-02-01 904 if (dev->chiptype == M88DS3103_CHIPTYPE_3103B) { e6089feca460cb4 Brad Love 2020-02-01 905 ret = m88ds3103_update_bits(dev, 0x29, 0x01, u8tmp1); e6089feca460cb4 Brad Love 2020-02-01 906 if (ret) e6089feca460cb4 Brad Love 2020-02-01 907 goto err; e6089feca460cb4 Brad Love 2020-02-01 908 } e6089feca460cb4 Brad Love 2020-02-01 909 /* fall through */ b6851419409664b nibble.max 2014-11-05 @910 default: 334ef18e879980e Antti Palosaari 2016-06-29 911 u16tmp = DIV_ROUND_UP(target_mclk, dev->cfg->ts_clk); 334ef18e879980e Antti Palosaari 2016-06-29 912 u8tmp1 = u16tmp / 2 - 1; 334ef18e879980e Antti Palosaari 2016-06-29 913 u8tmp2 = DIV_ROUND_UP(u16tmp, 2) - 1; 395d00d1ca89478 Antti Palosaari 2013-02-25 914 } 395d00d1ca89478 Antti Palosaari 2013-02-25 915 f5d9b88db7222bf Antti Palosaari 2016-06-29 916 dev_dbg(&client->dev, "target_mclk=%u ts_clk=%u ts_clk_divide_ratio=%u\n", 334ef18e879980e Antti Palosaari 2016-06-29 917 target_mclk, dev->cfg->ts_clk, u16tmp); 395d00d1ca89478 Antti Palosaari 2013-02-25 918 395d00d1ca89478 Antti Palosaari 2013-02-25 919 /* u8tmp1[5:2] => fe[3:0], u8tmp1[1:0] => ea[7:6] */ 395d00d1ca89478 Antti Palosaari 2013-02-25 920 /* u8tmp2[5:0] => ea[5:0] */ 334ef18e879980e Antti Palosaari 2016-06-29 921 u8tmp = (u8tmp1 >> 2) & 0x0f; 334ef18e879980e Antti Palosaari 2016-06-29 922 ret = regmap_update_bits(dev->regmap, 0xfe, 0x0f, u8tmp); 395d00d1ca89478 Antti Palosaari 2013-02-25 923 if (ret) 395d00d1ca89478 Antti Palosaari 2013-02-25 924 goto err; 395d00d1ca89478 Antti Palosaari 2013-02-25 925 u8tmp = ((u8tmp1 & 0x03) << 6) | u8tmp2 >> 0; 478932b16052f5d Antti Palosaari 2015-04-16 926 ret = regmap_write(dev->regmap, 0xea, u8tmp); 395d00d1ca89478 Antti Palosaari 2013-02-25 927 if (ret) 395d00d1ca89478 Antti Palosaari 2013-02-25 928 goto err; 395d00d1ca89478 Antti Palosaari 2013-02-25 929 395d00d1ca89478 Antti Palosaari 2013-02-25 930 if (c->symbol_rate <= 3000000) 395d00d1ca89478 Antti Palosaari 2013-02-25 931 u8tmp = 0x20; 395d00d1ca89478 Antti Palosaari 2013-02-25 932 else if (c->symbol_rate <= 10000000) 395d00d1ca89478 Antti Palosaari 2013-02-25 933 u8tmp = 0x10; 395d00d1ca89478 Antti Palosaari 2013-02-25 934 else 395d00d1ca89478 Antti Palosaari 2013-02-25 935 u8tmp = 0x06; 395d00d1ca89478 Antti Palosaari 2013-02-25 936 e6089feca460cb4 Brad Love 2020-02-01 937 if (dev->chiptype == M88DS3103_CHIPTYPE_3103B) e6089feca460cb4 Brad Love 2020-02-01 938 m88ds3103b_set_mclk(dev, target_mclk / 1000); e6089feca460cb4 Brad Love 2020-02-01 939 478932b16052f5d Antti Palosaari 2015-04-16 940 ret = regmap_write(dev->regmap, 0xc3, 0x08); 395d00d1ca89478 Antti Palosaari 2013-02-25 941 if (ret) 395d00d1ca89478 Antti Palosaari 2013-02-25 942 goto err; 395d00d1ca89478 Antti Palosaari 2013-02-25 943 478932b16052f5d Antti Palosaari 2015-04-16 944 ret = regmap_write(dev->regmap, 0xc8, u8tmp); 395d00d1ca89478 Antti Palosaari 2013-02-25 945 if (ret) 395d00d1ca89478 Antti Palosaari 2013-02-25 946 goto err; 395d00d1ca89478 Antti Palosaari 2013-02-25 947 478932b16052f5d Antti Palosaari 2015-04-16 948 ret = regmap_write(dev->regmap, 0xc4, 0x08); 395d00d1ca89478 Antti Palosaari 2013-02-25 949 if (ret) 395d00d1ca89478 Antti Palosaari 2013-02-25 950 goto err; 395d00d1ca89478 Antti Palosaari 2013-02-25 951 478932b16052f5d Antti Palosaari 2015-04-16 952 ret = regmap_write(dev->regmap, 0xc7, 0x00); 395d00d1ca89478 Antti Palosaari 2013-02-25 953 if (ret) 395d00d1ca89478 Antti Palosaari 2013-02-25 954 goto err; 395d00d1ca89478 Antti Palosaari 2013-02-25 955 f5d9b88db7222bf Antti Palosaari 2016-06-29 956 u16tmp = DIV_ROUND_CLOSEST_ULL((u64)c->symbol_rate * 0x10000, dev->mclk); 395d00d1ca89478 Antti Palosaari 2013-02-25 957 buf[0] = (u16tmp >> 0) & 0xff; 395d00d1ca89478 Antti Palosaari 2013-02-25 958 buf[1] = (u16tmp >> 8) & 0xff; 478932b16052f5d Antti Palosaari 2015-04-16 959 ret = regmap_bulk_write(dev->regmap, 0x61, buf, 2); 395d00d1ca89478 Antti Palosaari 2013-02-25 960 if (ret) 395d00d1ca89478 Antti Palosaari 2013-02-25 961 goto err; 395d00d1ca89478 Antti Palosaari 2013-02-25 962 56ea37da3b93dfe Antti Palosaari 2015-10-03 963 ret = m88ds3103_update_bits(dev, 0x4d, 0x02, dev->cfg->spec_inv << 1); 395d00d1ca89478 Antti Palosaari 2013-02-25 964 if (ret) 395d00d1ca89478 Antti Palosaari 2013-02-25 965 goto err; 395d00d1ca89478 Antti Palosaari 2013-02-25 966 56ea37da3b93dfe Antti Palosaari 2015-10-03 967 ret = m88ds3103_update_bits(dev, 0x30, 0x10, dev->cfg->agc_inv << 4); 395d00d1ca89478 Antti Palosaari 2013-02-25 968 if (ret) 395d00d1ca89478 Antti Palosaari 2013-02-25 969 goto err; 395d00d1ca89478 Antti Palosaari 2013-02-25 970 478932b16052f5d Antti Palosaari 2015-04-16 971 ret = regmap_write(dev->regmap, 0x33, dev->cfg->agc); 395d00d1ca89478 Antti Palosaari 2013-02-25 972 if (ret) 395d00d1ca89478 Antti Palosaari 2013-02-25 973 goto err; 395d00d1ca89478 Antti Palosaari 2013-02-25 974 e6089feca460cb4 Brad Love 2020-02-01 975 if (dev->chiptype == M88DS3103_CHIPTYPE_3103B) { e6089feca460cb4 Brad Love 2020-02-01 976 /* enable/disable 192M LDPC clock */ e6089feca460cb4 Brad Love 2020-02-01 977 ret = m88ds3103_update_bits(dev, 0x29, 0x10, e6089feca460cb4 Brad Love 2020-02-01 978 (c->delivery_system == SYS_DVBS) ? 0x10 : 0x0); e6089feca460cb4 Brad Love 2020-02-01 979 if (ret) e6089feca460cb4 Brad Love 2020-02-01 980 goto err; e6089feca460cb4 Brad Love 2020-02-01 981 e6089feca460cb4 Brad Love 2020-02-01 982 ret = m88ds3103_update_bits(dev, 0xc9, 0x08, 0x08); c4ed27cfed45c16 Sean Young 2020-04-16 983 if (ret) c4ed27cfed45c16 Sean Young 2020-04-16 984 goto err; e6089feca460cb4 Brad Love 2020-02-01 985 } e6089feca460cb4 Brad Love 2020-02-01 986 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 987 dev_dbg(&client->dev, "carrier offset=%d\n", f5d9b88db7222bf Antti Palosaari 2016-06-29 988 (tuner_frequency_khz - c->frequency)); 395d00d1ca89478 Antti Palosaari 2013-02-25 989 f5d9b88db7222bf Antti Palosaari 2016-06-29 990 /* Use 32-bit calc as there is no s64 version of DIV_ROUND_CLOSEST() */ f5d9b88db7222bf Antti Palosaari 2016-06-29 991 s32tmp = 0x10000 * (tuner_frequency_khz - c->frequency); f5d9b88db7222bf Antti Palosaari 2016-06-29 992 s32tmp = DIV_ROUND_CLOSEST(s32tmp, dev->mclk / 1000); 395d00d1ca89478 Antti Palosaari 2013-02-25 993 buf[0] = (s32tmp >> 0) & 0xff; 395d00d1ca89478 Antti Palosaari 2013-02-25 994 buf[1] = (s32tmp >> 8) & 0xff; 478932b16052f5d Antti Palosaari 2015-04-16 995 ret = regmap_bulk_write(dev->regmap, 0x5e, buf, 2); 395d00d1ca89478 Antti Palosaari 2013-02-25 996 if (ret) 395d00d1ca89478 Antti Palosaari 2013-02-25 997 goto err; 395d00d1ca89478 Antti Palosaari 2013-02-25 998 478932b16052f5d Antti Palosaari 2015-04-16 999 ret = regmap_write(dev->regmap, 0x00, 0x00); 395d00d1ca89478 Antti Palosaari 2013-02-25 1000 if (ret) 395d00d1ca89478 Antti Palosaari 2013-02-25 1001 goto err; 395d00d1ca89478 Antti Palosaari 2013-02-25 1002 478932b16052f5d Antti Palosaari 2015-04-16 1003 ret = regmap_write(dev->regmap, 0xb2, 0x00); 395d00d1ca89478 Antti Palosaari 2013-02-25 1004 if (ret) 395d00d1ca89478 Antti Palosaari 2013-02-25 1005 goto err; 395d00d1ca89478 Antti Palosaari 2013-02-25 1006 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 1007 dev->delivery_system = c->delivery_system; 395d00d1ca89478 Antti Palosaari 2013-02-25 1008 395d00d1ca89478 Antti Palosaari 2013-02-25 1009 return 0; 395d00d1ca89478 Antti Palosaari 2013-02-25 1010 err: 7978b8a1bc8ae0f Antti Palosaari 2015-04-16 1011 dev_dbg(&client->dev, "failed=%d\n", ret); 395d00d1ca89478 Antti Palosaari 2013-02-25 1012 return ret; 395d00d1ca89478 Antti Palosaari 2013-02-25 1013 } 395d00d1ca89478 Antti Palosaari 2013-02-25 1014
:::::: The code at line 910 was first introduced by commit :::::: b6851419409664bc564ce5148bbec1141944c710 [media] m88ds3103: change ts clock config for serial mode
:::::: TO: nibble.max <nibble.max@gmail.com> :::::: CC: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
--- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [unhandled content-type:application/gzip] | |