This patch fixes a bug resulting in a badly matching sample point.
Furthermore, it temporarily fixes the problems with prog_seg being
0 on AT91 and MPC2510 CAN controllers. A proper fix using min/max
values for prog_seg, phase_seg1 and phase_seg2 is on the to-do
list.
Signed-off-by: Wolfgang Grandegger <wg@grandegger.com>
git-svn-id: svn://svn.berlios.de//socketcan/trunk@832
030b6a49-0b11-0410-94ab-
b0dab22257f2
break;
}
- if (!spt)
- spt = can_update_spt(btc, sampl_pt, best_tseg, &tseg1, &tseg2);
+ spt = can_update_spt(btc, sampl_pt, best_tseg, &tseg1, &tseg2);
v64 = (u64)best_brp * 1000000000UL;
do_div(v64, bt->clock);
bt->tq = (u32)v64;
- bt->prop_seg = 0;
- bt->phase_seg1 = tseg1;
+ bt->prop_seg = tseg1 / 2;
+ bt->phase_seg1 = tseg1 - bt->prop_seg;
bt->phase_seg2 = tseg2;
bt->sjw = 1;
bt->brp = best_brp;