Thread (8 messages) flat view 8 messages, 3 authors, 2018-05-22

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 +0200
quoted
+ /* 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help