lkml.org 
[lkml]   [2008]   [Jul]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 8/30] W1: recode w1_slave_found logic
    Simplified the logic in w1_slave_found by using the new
    w1_attach_slave_device function to find a slave and mark it as active
    or add the device if the crc checks.

    Signed-off-by: David Fries <david@fries.net>
    Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
    ---
    drivers/w1/w1.c | 26 ++++++--------------------
    1 files changed, 6 insertions(+), 20 deletions(-)

    diff --git a/drivers/w1/w1.c b/drivers/w1/w1.c
    index 24312e0..4bf2001 100644
    --- a/drivers/w1/w1.c
    +++ b/drivers/w1/w1.c
    @@ -836,9 +836,7 @@ void w1_reconnect_slaves(struct w1_family *f, int attach)

    static void w1_slave_found(struct w1_master *dev, u64 rn)
    {
    - int slave_count;
    struct w1_slave *sl;
    - struct list_head *ent;
    struct w1_reg_num *tmp;
    u64 rn_le = cpu_to_le64(rn);

    @@ -846,24 +844,12 @@ static void w1_slave_found(struct w1_master *dev, u64 rn)

    tmp = (struct w1_reg_num *) &rn;

    - slave_count = 0;
    - list_for_each(ent, &dev->slist) {
    -
    - sl = list_entry(ent, struct w1_slave, w1_slave_entry);
    -
    - if (sl->reg_num.family == tmp->family &&
    - sl->reg_num.id == tmp->id &&
    - sl->reg_num.crc == tmp->crc) {
    - set_bit(W1_SLAVE_ACTIVE, (long *)&sl->flags);
    - break;
    - }
    -
    - slave_count++;
    - }
    -
    - if (slave_count == dev->slave_count &&
    - rn && ((rn >> 56) & 0xff) == w1_calc_crc8((u8 *)&rn_le, 7)) {
    - w1_attach_slave_device(dev, tmp);
    + sl = w1_slave_search_device(dev, tmp);
    + if (sl) {
    + set_bit(W1_SLAVE_ACTIVE, (long *)&sl->flags);
    + } else {
    + if (rn && tmp->crc == w1_calc_crc8((u8 *)&rn_le, 7))
    + w1_attach_slave_device(dev, tmp);
    }

    atomic_dec(&dev->refcnt);
    --
    1.4.4.4[unhandled content-type:application/pgp-signature]
    \
     
     \ /
      Last update: 2008-07-29 04:21    [W:0.022 / U:30.476 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site