Hello. On Mon, 2013-03-25 at 23:31, Alexander Aring wrote: > > On Sun, Mar 24, 2013 at 01:40:31PM +0000, Stefan Schmidt wrote: > > Implement the filter function to update short address, pan id and ieee > > address on change. Allowing for hardware address filtering needed for > > auto ACK. > > > > Signed-off-by: Stefan Schmidt <ste...@datenfreihafen.org> > > --- > > drivers/net/ieee802154/at86rf230.c | 45 > > ++++++++++++++++++++++++++++++++++++ > > 1 file changed, 45 insertions(+) > > > > diff --git a/drivers/net/ieee802154/at86rf230.c > > b/drivers/net/ieee802154/at86rf230.c > > index fc1687e..10e79a4 100644 > > --- a/drivers/net/ieee802154/at86rf230.c > > +++ b/drivers/net/ieee802154/at86rf230.c > > @@ -619,6 +619,50 @@ err: > > return -EINVAL; > > } > > > > +static int > > +at86rf230_set_hw_addr_filt(struct ieee802154_dev *dev, > > + struct ieee802154_hw_addr_filt > > *filt, > > + unsigned long changed) > > +{ > > + struct at86rf230_local *lp = dev->priv; > > + > > + might_sleep(); > > + > > + if (changed & IEEE802515_AFILT_SADDR_CHANGED) { > > + dev_info(&lp->spi->dev, "at86rf230_set_hw_addr_filt called for > > saddr\n"); > > This will printout always this msg, maybe we can do it in dev_vdbg?
Good point. Changed here and will be in the re-submit. > > + __at86rf230_write(lp, RG_SHORT_ADDR_0, filt->short_addr & > > 0xff); /* LSB */ > > + __at86rf230_write(lp, RG_SHORT_ADDR_1, (filt->short_addr >> 8) > > & 0xff); /* MSB */ > > + } > > + > > + if (changed & IEEE802515_AFILT_PANID_CHANGED) { > > + dev_info(&lp->spi->dev, "at86rf230_set_hw_addr_filt called for > > pan id\n"); > > + __at86rf230_write(lp, RG_PAN_ID_0, filt->pan_id & 0xff); /* LSB > > */ > > + __at86rf230_write(lp, RG_PAN_ID_1, (filt->pan_id >> 8) & 0xff); > > /* MSB */ > > + } > > + > > + if (changed & IEEE802515_AFILT_IEEEADDR_CHANGED) { > > + dev_info(&lp->spi->dev, "at86rf230_set_hw_addr_filt called ieee > > addr\n"); > > + at86rf230_write_subreg(lp, SR_IEEE_ADDR_0, filt->ieee_addr[7]); > > + at86rf230_write_subreg(lp, SR_IEEE_ADDR_1, filt->ieee_addr[6]); > > + at86rf230_write_subreg(lp, SR_IEEE_ADDR_2, filt->ieee_addr[5]); > > + at86rf230_write_subreg(lp, SR_IEEE_ADDR_3, filt->ieee_addr[4]); > > + at86rf230_write_subreg(lp, SR_IEEE_ADDR_4, filt->ieee_addr[3]); > > + at86rf230_write_subreg(lp, SR_IEEE_ADDR_5, filt->ieee_addr[2]); > > + at86rf230_write_subreg(lp, SR_IEEE_ADDR_6, filt->ieee_addr[1]); > > + at86rf230_write_subreg(lp, SR_IEEE_ADDR_7, filt->ieee_addr[0]); > > + } > > + > > + if (changed & IEEE802515_AFILT_PANC_CHANGED) { > > + dev_info(&lp->spi->dev, "at86rf230_set_hw_addr_filt called panc > > change\n"); > > + if (filt->pan_coord) > > + at86rf230_write_subreg(lp, SR_AACK_I_AM_COORD, 1); > > + else > > + at86rf230_write_subreg(lp, SR_AACK_I_AM_COORD, 0); > > + } > > + > maybe we can handle this in a switch-case state? > default switch will return some errno, ENOSYS or something else. Given we can the changed flag and need to check this anyway I prefer the if statements here. Will leave it as is. regards Stefan Schmidt ------------------------------------------------------------------------------ Own the Future-Intel® Level Up Game Demo Contest 2013 Rise to greatness in Intel's independent game demo contest. Compete for recognition, cash, and the chance to get your game on Steam. $5K grand prize plus 10 genre and skill prizes. Submit your demo by 6/6/13. http://p.sf.net/sfu/intel_levelupd2d _______________________________________________ Linux-zigbee-devel mailing list Linux-zigbee-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel