lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Fri, 9 Oct 2020 13:19:41 +0800
From:   kernel test robot <lkp@...el.com>
To:     "Gustavo A. R. Silva" <gustavoars@...nel.org>
Cc:     kbuild-all@...ts.01.org, clang-built-linux@...glegroups.com,
        "Gustavo A. R. Silva" <gustavo@...eddedor.com>,
        LKML <linux-kernel@...r.kernel.org>
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@...el.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@...il.com>
:::::: CC: Mauro Carvalho Chehab <mchehab@....samsung.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Download attachment ".config.gz" of type "application/gzip" (33116 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ