Hi Norman,
thank you very much for you help.
In the meantime I had a look at the cpsw function in the "offical" kernel source. Together with your hints it now runs.
The function cpsw_ndo_do_ioctl is already part of the driver cpsw.c and hostport is no element of cpsw_priv.
I used int slave_no = cpsw_slave_phy_index(priv); instead.
In the default section of switch(cmd) I used your code:
if (!priv->slaves[slave_no].phy)
return -EOPNOTSUPP;
return phy_mii_ioctl(priv->slaves[slave_no].phy, ifrq, cmd);
Rainer