• Ansuel Smith's avatar
    net: dsa: qca8k: add support for larger read/write size with mgmt Ethernet · 90386223
    Ansuel Smith authored
    mgmt Ethernet packet can read/write up to 16byte at times. The len reg
    is limited to 15 (0xf). The switch actually sends and accepts data in 4
    different steps of len values.
    Len steps:
    - 0: nothing
    - 1-4: first 4 byte
    - 5-6: first 12 byte
    - 7-15: all 16 byte
    
    In the alloc skb function we check if the len is 16 and we fix it to a
    len of 15. It the read/write function interest to extract the real asked
    data. The tagger handler will always copy the fully 16byte with a READ
    command. This is useful for some big regs like the fdb reg that are
    more than 4byte of data. This permits to introduce a bulk function that
    will send and request the entire entry in one go.
    Write function is changed and it does now require to pass the pointer to
    val to also handle array val.
    Signed-off-by: default avatarAnsuel Smith <ansuelsmth@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    90386223
qca8k.c 79.2 KB