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>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 28 Dec 2016 18:10:34 +0000
From:   Luis Oliveira <Luis.Oliveira@...opsys.com>
To:     Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
        Luis Oliveira <Luis.Oliveira@...opsys.com>,
        <wsa@...-dreams.de>, <robh+dt@...nel.org>, <mark.rutland@....com>,
        <jarkko.nikula@...ux.intel.com>, <mika.westerberg@...ux.intel.com>,
        <linux-i2c@...r.kernel.org>, <devicetree@...r.kernel.org>,
        <linux-kernel@...r.kernel.org>
CC:     <Ramiro.Oliveira@...opsys.com>, <Joao.Pinto@...opsys.com>,
        <CARLOS.PALMINHA@...opsys.com>
Subject: Re: [PATCH v5 6/7] i2c: designware: enable SLAVE in platform module

On 28-Dec-16 17:10, Andy Shevchenko wrote:
> On Wed, 2016-12-28 at 16:41 +0000, Luis Oliveira wrote:
>> On 28-Dec-16 16:31, Andy Shevchenko wrote:
>>> On Wed, 2016-12-28 at 15:53 +0000, Luis Oliveira wrote:
>>>> On 28-Dec-16 15:44, Andy Shevchenko wrote:
>>>>> On Wed, 2016-12-28 at 14:43 +0000, Luis Oliveira wrote:
>>>>>> - Slave mode selected in platform module (devicetree support
>>>>>> only)
>>>>>> - Check for ACPI - not supported in SLAVE mode:
>>>>>>   - Changed the ifndef style to the use of ACPI_HANDLE that
>>>>>> returns
>>>>>> NULL
>>>>>>     if the device was not enumerated from ACPI namespace.
>>>>>
>>>>> I'm not sure what is wrong with ACPI?
>>>>
>>>> I dont have a way to test it. Just that.
>>>
>>> Okay, can you provide an excerpt to see how it will look like in
>>> DTS?
>>
>> Yes, it looks like this now:
>>
>> 	i2c@...000 {
>> 			compatible = "snps,designware-i2c";
>> 			#address-cells = <1>;
>> 			#size-cells = <0>;
>> 			reg = <0x2000 0x100>;
>> 			clock-frequency = <400000>;
>> 			clocks = <&i2cclk>;
>> 			interrupts = <0>;
>>
>> 			eeprom@64 {
>> 				compatible = "linux,slave-24c02";
>> 				reg = <0x40000064>;
>> 			};
>> 	};
> 
> +1 to Carlos' comment.

Agree, I'm on it.

> 
>>>  
>>>>>> -	dev->functionality = I2C_FUNC_10BIT_ADDR |
>>>>>> DW_IC_DEFAULT_FUNCTIONALITY;
>>>>>> -
>>>>>> -	i2c_dw_configure_master(pdev);
>>>>>> +	if (ACPI_HANDLE(&pdev->dev) == NULL) {
>>>>>
>>>>> I don't think you need this at all.
>>>>
>>>> This is to avoid the use of the "ifdef" style I used before.
>>>
>>> My point is to drop it completely.
>>>
>>>>>
>>>>>> +		device_for_each_child_node(&pdev->dev, child)
>>>>>> {
>>>>>
>>>>> This is resource agnostic.
>>>>>
>>>>>> +			fwnode_property_read_u32(child,
>>>>>> "reg",
>>>>>> &reg);
>>>>>
>>>>> This is as well.
>>>>
>>>> Are you suggesting I use of_ functions?
>>>
>>> Nope. See above.
> 
> So, ACPI has a property to support slave mode for I2CSerialBus() macro.
> 
> I would propose to create a helper function in i2c-core.c which will be
> responsible for mode detection
> 
> ... i2c_slave_mode_detect()
> {
> ...
>  if (IS_BUILTIN(CONFIG_OF) && dev->of_node) {
>   ... (use of_*() here) ...
>  } else if (IS_BUILTIN(CONFIG_ACPI) && ACPI_HANDLE(dev))
>   dev_dbg(..., "ACPI slave is not supported yet\n");
>   ... to master ...
>  } else {
>   ... default to master ...
>  }
> }
> EXPORT_...();
> 
> Make it as a separate patch.
> 

Oh I see, yes it looks good. I will check it. Thanks

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ