Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

i2c: Set a default timeout value for all adapters

Setting a default timeout value on a per-algo basis doesn't make any
sense. Move the default value setting to i2c-core. Individual adapter
drivers can specify a different (non-zero) value if they wish.

Also express the timeout value in a way which results in the same
duration regarless of the value of HZ.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>

+6 -4
+1 -3
drivers/i2c/algos/i2c-algo-bit.c
··· 604 604 605 605 /* register new adapter to i2c module... */ 606 606 adap->algo = &i2c_bit_algo; 607 - 608 - adap->timeout = 100; /* default values, should */ 609 - adap->retries = 3; /* be replaced by defines */ 607 + adap->retries = 3; 610 608 611 609 return 0; 612 610 }
-1
drivers/i2c/algos/i2c-algo-pcf.c
··· 423 423 424 424 /* register new adapter to i2c module... */ 425 425 adap->algo = &pcf_algo; 426 - adap->timeout = 100; 427 426 428 427 if ((rval = pcf_init_8584(pcf_adap))) 429 428 return rval;
+5
drivers/i2c/i2c-core.c
··· 459 459 pr_debug("I2C adapter driver [%s] forgot to specify " 460 460 "physical device\n", adap->name); 461 461 } 462 + 463 + /* Set default timeout to 1 second if not already set */ 464 + if (adap->timeout == 0) 465 + adap->timeout = HZ; 466 + 462 467 dev_set_name(&adap->dev, "i2c-%d", adap->nr); 463 468 adap->dev.release = &i2c_adapter_dev_release; 464 469 adap->dev.class = &i2c_adapter_class;