Dear Jan,

--> Would be nice to see it inside drivers/, and to have the required
changes to the build system done as well - when time permits. Then generate
a true patch from your changes (just like here [1]) and repost.
I have managed to create Makefile for my driver in the RTnet tree and build
successfully in rtnet/driver/at91/ directory but not in the rtnet/
directory. Could you help on this?

The printk statements in the do_request_cal_job are as follow:

static struct tdma_job *do_request_cal_job(struct tdma_priv *tdma, struct
tdma_request_cal *job, rtdm_lockctx_t lockctx)
{
    struct rt_proc_call *call;
    struct tdma_job     *prev_job;
    int                 err;

    printk("[Debug] callibration start 1\n");

    if ((job->period != 1) &&
        (tdma->current_cycle % job->period != job->phasing))
        return &job->head;

     printk("[Debug] callibration start 2\n");

    /* remove job until we get a reply */
    __list_del(job->head.entry.prev, job->head.entry.next);
    job->head.ref_count--;
    prev_job = tdma->current_job =
        list_entry(job->head.entry.prev, struct tdma_job, entry);
    prev_job->ref_count++;
    tdma->job_list_revision++;

    printk("[Debug] callibration start 3\n");

    rtdm_lock_put_irqrestore(&tdma->lock, lockctx);

    printk("[Debug] callibration start 4 [delay] %lld\n",
tdma->current_cycle_start + job->offset);

    rtdm_task_sleep_until(tdma->current_cycle_start + job->offset);

    printk("[Debug] callibration start 5\n");

    err = tdma_xmit_request_cal_frame(tdma,
            tdma->current_cycle + job->period, job->offset);

    rtdm_lock_get_irqsave(&tdma->lock, lockctx);

    printk("delay: %lld\n", tdma->current_cycle_start + job->offset -
rtdm_clock_read());

    /* terminate call on error */
    if (err < 0) {
        call = tdma->calibration_call;
        tdma->calibration_call = NULL;

        if (call) {
            rtdm_lock_put_irqrestore(&tdma->lock, lockctx);
            rtpc_complete_call(call, err);
            rtdm_lock_get_irqsave(&tdma->lock, lockctx);
        }
    }

    return prev_job;
}
Result of Kernel Message:
[Debug] Req Cal Stage
[Debug] callibration start 1
[Debug] callibration start 2
[Debug] callibration start 3
[Debug] callibration start 4 [delay] 1189571585923819617
RTcfg: rtcfg_do_main_event() rtdev=1, event=RTCFG_FRM_STAGE_1_CFG,
state=RTCFG_MAIN_CLIENT_1

Is this because of the delay is too long? Any ideas?

Please advice. Thanks

Regards,
Chun Yeow


On 9/8/07, Jan Kiszka <[EMAIL PROTECTED]> wrote:
>
> Yeoh Chun Yeow wrote:
> > Dear Jan,
> >
> > I observed that tdma_worker task proceeds until the XMIT_REQ_CAL and
> calls
> > the do_request_cal_job. But printk statement at beginning of the
> > do_request_cal_job is not logged in the kernel message. Any ideas on
> this?
>
> You mean "case XMIT_REQ_CAL:" is actually taken (printk at this point
> can be seen), but a printk _right_ at the beginning of
> do_request_cal_job() not? Or is that second printk after the if-clause
> in do_request_cal_job()? That would be extremely weird.
>
> Jan [who wishes he could work on this more interactively...]
>
>
>
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
RTnet-users mailing list
RTnet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rtnet-users

Reply via email to