[PATCH v3 1/3] net: cortina_ni: Add eth support for Cortina Access CAxxxx SoCs
Alex Nemirovsky
Alex.Nemirovsky at cortina-access.com
Tue Sep 29 20:24:52 CEST 2020
Moved my comment from prior response so that it’s more likely to be seen:
Thanks for your patience on this one. I know we have been successful with most of the other code that has been submitted upstream. This one seems to be a challenge.
Could you give us your honest constructive criticism on this code and I will be happy to pass it up to management for consideration.
Thanks Tom.
> On Sep 29, 2020, at 11:12 AM, Alex Nemirovsky <Alex.Nemirovsky at cortina-access.com> wrote:
>
> Abbie,
>
> Please have a look at Tom’s feedback to address his concerns.
>
>>> On Sep 29, 2020, at 10:55 AM, Tom Rini <trini at konsulko.com> wrote:
>>>
>>> On Wed, Sep 23, 2020 at 05:59:12PM -0700, Alex Nemirovsky wrote:
>>>
>>> From: Abbie Chang <abbie.chang at cortina-access.com>
>>>
>>> Add Cortina Access Ethernet device driver for CAxxxx SoCs.
>>> This driver supports both legacy and DM_ETH network models.
>>>
>>> Signed-off-by: Aaron Tseng <aaron.tseng at cortina-access.com>
>>> Signed-off-by: Alex Nemirovsky <alex.nemirovsky at cortina-access.com>
>>> Signed-off-by: Abbie Chang <abbie.chang at cortina-access.com>
>>>
>>> CC: Joe Hershberger <joe.hershberger at ni.com>
>>> CC: Abbie Chang <abbie.chang at Cortina-Access.com>
>>> CC: Tom Rini <trini at konsulko.com>
>> [snip]
>>
>> Again, please give the whole driver a read and compare it with other
>> network drivers that've been most recently added. I question things
>> like:
>>> +static u32 *rdwrptr_adv_one(u32 *x, unsigned long base, unsigned long max)
>>> +{
>>> + if (x + 1 >= (u32 *)max)
>>> + return (u32 *)base;
>>> + else
>>> + return (x + 1);
>>> +}
>> [snip]
>>> +static u32 REG_TO_U32(void *reg)
>>> +{
>>> + return *(u32 *)reg;
>>> +}
>> [snip]
>>> +int ca_miiphy_read(const char *devname,
>>> + unsigned char addr,
>>> + unsigned char reg,
>>> + unsigned short *value)
>>> +{
>>> + return ca_mdio_read(addr, reg, value);
>>> +}
>>> +
>>> +int ca_miiphy_write(const char *devname,
>>> + unsigned char addr,
>>> + unsigned char reg,
>>> + unsigned short value)
>>> +{
>>> + return ca_mdio_write(addr, reg, value);
>>> +}
>>
>> And lots of other simple looking wrappers.
>>
>> [snip]
>>> +static void ca_ni_setup_mac_addr(void)
>>> +{
>>> + unsigned char mac[6];
>>> +
>>> + struct NI_HV_GLB_MAC_ADDR_CFG0_t mac_addr_cfg0;
>>> + struct NI_HV_GLB_MAC_ADDR_CFG1_t mac_addr_cfg1;
>>> + struct NI_HV_PT_PORT_STATIC_CFG_t port_static_cfg;
>>> + struct NI_HV_XRAM_CPUXRAM_CFG_t cpuxram_cfg;
>>> + struct cortina_ni_priv *priv = dev_get_priv(curr_dev);
>>
>> While checkpatch didn't complain, can you please fix the driver to use
>> consistent spacing?
> Abbie,
> Please look at the spacing.
>>
>> I feel like I asked before about Linux upstreaming of these drivers and
>> the answer was that it was planned for later, is that right?
> IIRC you asked for the Linux drivers and I responded that there are no Linux drivers upstream and that management has not asked for them to be upstreamed.
>
>
> Thanks for your patience on this one. I know we have been successful with most of the other code that has been submitted upstream. This one seems to be a challenge.
> Could you give us your honest constructive criticism on this code and I will be happy to pass it up to management for consideration.
>
> Thanks Tom.
>>
>> --
>> Tom
More information about the U-Boot
mailing list