Re: [PATCH 1/4] arcnet: com20020: Add com20020 io mapped version
From: Andrea Greco <hidden>
Date: 2018-05-18 12:19:27
Also in:
lkml
On 05/17/2018 10:31 PM, David Miller wrote:
From: Andrea Greco <redacted> Date: Thu, 17 May 2018 15:05:29 +0200quoted
+ /* Will be set by userspace during if setup */ + dev->dev_addr[0] = 0;Hmmm... really? Also, every error path from this point forward will leak 'dev'.
In com20020.c found this: /* FIXME: do this some other way! */ if (!dev->dev_addr[0]) dev->dev_addr[0] = arcnet_inb(ioaddr, 8); NODE-ID, must be univoque, for all arcnet network. My previews idea was take random value but, this could create a collision over network. A possible solution is: In case of collision com20020 set a bit in status register. Then peak a new NODE-ID and repeat this while correct NODE-ID is found. Other ideas is pass it via DTS. But suppose have 2 same product in same network, same address same problem. For this reason i prefer left standard driver behavior. Other ideas for solve this ? Other question discussed with Tobin in RFC patch is: At now a devm_ioremap is done by this driver. Other version of this driver, PCI, PCMCIA, ISA do not remap memory. Other implementation, use:inb outb for r/w operation. I do a ugly #ifndef and redefine arcnet_inb in case is defined CONFIG_ARCNET_COM20020_IO. My proposal was: Add relative callback arcnet_inb, arcnet_outb and friends hw struct in arcdevice.h, then every driver set callback with required function. Regards, Andrea