I'm about to give up on this little endavour unless some 'aha' moment is shared
It looks like for whatever reason, it's not easily possible to read those extended registers. For example, readin the PHYID works just fine, on all normal ports; but reading the cable test register, just gives some random data, that isn't supposed to be there (datasheet says 'RO, always 0' and it clearly isn't. So am I reading even the right registers? Is there some other magic involved?
pr_err("%s-%d: test\n", __func__, __LINE__);
pr_err("ID: 0x%x %x\n", mdiobus_read(bus, port, MII_PHYSID1), mdiobus_read(bus, port, MII_PHYSID2));
pr_err("ID-bus: 0x%x %x\n", bus->read(bus, port, MII_PHYSID1), bus->read(bus, port, MII_PHYSID2));
pr_err("VCT: 0x%x %x\n", mdiobus_read(bus, port, 0x1c), mdiobus_read(bus, port, 0x16));
The mdiobus_read command obviously works; and reading any of the other MII standard registers works just fine as well ...