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
| ||
|
Date: Tue, 16 Aug 2016 17:00:12 +0300 From: Jarkko Nikula <jarkko.nikula@...ux.intel.com> To: Lucas De Marchi <lucas.demarchi@...el.com>, linux-i2c@...r.kernel.org Cc: christian.ruppert@...tech.com, linux-kernel@...r.kernel.org, mika.westerberg@...ux.intel.com, José Roberto de Souza <jose.souza@...el.com> Subject: Re: [PATCH v3 2/3] i2c: designware: detect when dynamic tar update is possible Hi, + Wolfram On 07/29/2016 01:03 AM, Lucas De Marchi wrote: > This adapter can be synthesized with dynamic tar update enabled or disabled. > When enabled it is not necessary to disable the adapter to change the slave > address in some situations, which saves some time per transaction. > > There is no direct register to know if this feature is enabled but we can do it > indirectly by writing to the 10BIT_ADDR field in IC_CON: this field is > read only when dynamic tar update is enabled. > > Signed-off-by: Lucas De Marchi <lucas.demarchi@...el.com> > Signed-off-by: José Roberto de Souza <jose.souza@...el.com> > --- > drivers/i2c/busses/i2c-designware-core.c | 37 ++++++++++++++++++++++---------- > drivers/i2c/busses/i2c-designware-core.h | 1 + > 2 files changed, 27 insertions(+), 11 deletions(-) > > diff --git a/drivers/i2c/busses/i2c-designware-core.c b/drivers/i2c/busses/i2c-designware-core.c > index 2c61585..a8408db 100644 > --- a/drivers/i2c/busses/i2c-designware-core.c > +++ b/drivers/i2c/busses/i2c-designware-core.c > @@ -388,6 +388,20 @@ int i2c_dw_init(struct dw_i2c_dev *dev) > /* configure the i2c master */ > dw_writel(dev, dev->master_cfg , DW_IC_CON); > > + /* > + * Test if dynamic TAR update is enabled in this controller by writing to Over 80 characters in this line. > + */ > + reg = dw_readl(dev, DW_IC_CON); > + dw_writel(dev, reg ^ DW_IC_CON_10BITADDR_MASTER, DW_IC_CON); > + > + if ((dw_readl(dev, DW_IC_CON) & DW_IC_CON_10BITADDR_MASTER) == > + (reg & DW_IC_CON_10BITADDR_MASTER)) { > + dev->dynamic_tar_update_enabled = true; > + dev_dbg(dev->dev, "Dynamic TAR update enabled"); > + } Is this possible to move to i2c_dw_probe()? I guess the enabled status doesn't change runtime? -- Jarkko
Powered by blists - more mailing lists