lkml.org 
[lkml]   [2016]   [Jun]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v2 net-next v2 08/12] net: dsa: mv88e6xxx: read switch ID from info
    From
    Date
    Hello.

    On 06/14/2016 09:31 PM, Vivien Didelot wrote:

    > Retrieve the info structure of the compatible of device in the new probe
    > function, in order to know how to access the switch ID register.
    >
    > That way, a compatible info can be used to describe how to access the
    > switch registers on models with different registers layout or addressing
    > modes.
    >
    > Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
    > ---
    > drivers/net/dsa/mv88e6xxx.c | 11 ++++++++++-
    > 1 file changed, 10 insertions(+), 1 deletion(-)
    >
    > diff --git a/drivers/net/dsa/mv88e6xxx.c b/drivers/net/dsa/mv88e6xxx.c
    > index 8c39dd0..8ac9f9a 100644
    > --- a/drivers/net/dsa/mv88e6xxx.c
    > +++ b/drivers/net/dsa/mv88e6xxx.c
    [...]
    > @@ -3745,6 +3746,8 @@ static int mv88e6xxx_probe(struct mdio_device *mdiodev)
    > {
    > struct device *dev = &mdiodev->dev;
    > struct device_node *np = dev->of_node;
    > + const struct of_device_id *of_id;
    > + const struct mv88e6xxx_info *info;
    > struct mv88e6xxx_priv_state *ps;
    > int id, prod_num, rev;
    > u32 eeprom_len;
    > @@ -3759,7 +3762,13 @@ static int mv88e6xxx_probe(struct mdio_device *mdiodev)
    > ps->sw_addr = mdiodev->addr;
    > mutex_init(&ps->smi_mutex);
    >
    > - id = mv88e6xxx_reg_read(ps, REG_PORT(0), PORT_SWITCH_ID);
    > + of_id = of_match_node(mv88e6xxx_of_id_table, np);

    You could use of_device_get_match_data() here.

    > + if (!of_id)
    > + return -EINVAL;
    > +
    > + info = (const struct mv88e6xxx_info *)of_id->data;

    Pointer casts from 'void *' are automatic.

    [...]

    MBR, Sergei

    \
     
     \ /
      Last update: 2016-06-14 21:41    [W:3.902 / U:0.392 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site