From: Oliver Hartkopp <socketcan-fJ+pQTUTwRTk1uMJSBkQmQ@public.gmane.org>
To: "Wang, Qi" <qi.wang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: "Khor,
Andrew Chih Howe"
<andrew.chih.howe.khor-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
"socketcan-core-0fE9KPoRgkgATYTw5x5z8w@public.gmane.org"
<socketcan-core-0fE9KPoRgkgATYTw5x5z8w@public.gmane.org>,
"netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Greg KH <gregkh-l3A5Bk7waGM@public.gmane.org>,
"Wang,
Yong Y" <yong.y.wang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
Masayuki Ohtak
<masa-korg-ECg8zkTtlr0C6LszWs/t0g@public.gmane.org>,
"meego-dev-WXzIur8shnEAvxtiuMwx3w@public.gmane.org"
<meego-dev-WXzIur8shnEAvxtiuMwx3w@public.gmane.org>,
"arjan-VuQAYsv1563Yd54FQh9/CA@public.gmane.org"
<arjan-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
Wolfgang Grandegger <wg-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org>
Subject: Re: [MeeGo-Dev][PATCH] Topcliff: Update PCH_CAN driver to 2.6.35
Date: Thu, 12 Aug 2010 08:25:52 +0200 [thread overview]
Message-ID: <4C6393F0.5090005@hartkopp.net> (raw)
In-Reply-To: <20100812020414.GD14121-l3A5Bk7waGM@public.gmane.org>
On 12.08.2010 04:04, Greg KH wrote:
> On Thu, Aug 12, 2010 at 09:42:27AM +0800, Wang, Qi wrote:
>>> 2. Why don't you use kernel existing kfifo infrastructure? ([2]).
>> Just take a look at kfifo.h. This structure has been changed. I
>> remembered there was a spin_lock from kfifo previously. Currently it's
>> been removed, good.
>> OKI-sans, would you please take a look at ./include/linux/kfifo.h, and try to use this structure and APIs?
>>
>> Daniel,
>>
>> We're anxious to integrate those codes now. Perhaps it'll take us
>> quite a long time to use kfifo. How about implementing it with the
>> next version?
>
> What do you mean by this? Code isn't merged into the tree unless it is
> correct. Please fix this now, it's not that big of a deal.
>
Hello Qi,
i generally wonder what this FIFO is used for??
For me it looks like a artifact from a former chardev implementation, as
several other code sniplets do (see comments from Wolfgang and Marc).
The network driver model is used for CAN drivers and therefore all the
infrastructure for queueing inbound and outbound network traffic should be
used from the Kernel like all other CAN drivers and all other ethernet drivers do.
Additionally there is a powerful infrastructure to support the special
functions of CAN netdevices (like setting of bittimings, listen-only modes, or
to produce CAN driver states etc.), that's part of the CAN drivers in
drivers/net/can/ since it has gone mainline.
CAN netdevices are intentionally dumb (like the original ethernet adapters).
This allows a simple driver interface between the kernel and the hardware
driver, e.g. for queueing CAN frames. CAN drivers don't use any hardware
rx-filtering(!) due to multiuser requirements and it's a vital requirement
that the frames are not re-ordered on sending (by the 'some magic' CAN
controller dealing with CAN-ID priorities, e.g. see tx-path in the MSCAN driver).
>From my perspective about 70% of your code is obsolete, as you implemented
tricky details (like FIFOs, bittiming tables or magic filter handlings),
that's not needed at all.
Please take a look at the SJA1000 driver (for a low complex CAN controller) or
at the TI driver (for a higher complex CAN controller) how these drivers
handle the specialties of each hardware. And read some documentation in
Documentation/networking/can.txt to get an impression about the concepts of
the CAN implementation in the Linux Kernel and the CAN netdevices.
I strongly assume that your driver would be about 30 kBytes of code fitting
into a single c-file like the ti_hecc.c does. And that's definitely easier for
us to review and easier for you to maintain in the future ...
Thanks & best regards,
Oliver
next prev parent reply other threads:[~2010-08-12 6:25 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-11 0:25 [MeeGo-Dev][PATCH] Topcliff: Update PCH_CAN driver to 2.6.35 Masayuki Ohtak
[not found] ` <4C61EDE5.4030505-ECg8zkTtlr0C6LszWs/t0g@public.gmane.org>
2010-08-11 10:37 ` Daniel Baluta
2010-08-12 1:42 ` Wang, Qi
2010-08-12 2:04 ` Greg KH
2010-08-12 2:13 ` Wang, Qi
[not found] ` <20100812020414.GD14121-l3A5Bk7waGM@public.gmane.org>
2010-08-12 6:25 ` Oliver Hartkopp [this message]
2010-08-12 6:29 ` Wang, Qi
2010-08-12 2:39 ` Masayuki Ohtake
[not found] ` <D5AB6E638E5A3E4B8F4406B113A5A19A28EA26EB-QQHDSDV1ERZpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2010-08-12 5:17 ` Daniel Baluta
2010-08-12 9:03 ` Wolfgang Grandegger
2010-08-13 0:23 ` Wang, Qi
[not found] ` <D5AB6E638E5A3E4B8F4406B113A5A19A28EA2AB1-QQHDSDV1ERZpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2010-08-13 6:11 ` Daniel Baluta
2010-08-13 10:58 ` Wolfgang Grandegger
2010-08-20 6:01 ` Masayuki Ohtake
[not found] ` <000f01cb402d$34b675b0$66f8800a-a06+6cuVnkTSQfdrb5gaxUEOCMrvLtNR@public.gmane.org>
2010-08-20 7:59 ` Wolfgang Grandegger
2010-08-20 8:37 ` Masayuki Ohtake
2010-08-11 12:31 ` Wolfgang Grandegger
[not found] ` <D5AB6E638E5A3E4B8F4406B113A5A19A28EA26CC@shsmsx501.ccr.corp.intel.com>
[not found] ` <4C63B6C9.5050804@grandegger.com>
[not found] ` <D5AB6E638E5A3E4B8F4406B113A5A19A28EA29DF@shsmsx501.ccr.corp.intel.com>
2010-09-01 7:45 ` Masayuki Ohtake
2010-09-01 17:04 ` out-of-order tx objects - was " Oliver Hartkopp
2010-09-01 17:04 ` Oliver Hartkopp
2010-09-01 18:51 ` Wolfgang Grandegger
2010-09-01 18:51 ` Wolfgang Grandegger
2010-09-02 3:19 ` Masayuki Ohtake
2010-09-02 3:19 ` Masayuki Ohtake
2010-09-02 6:32 ` Wolfgang Grandegger
2010-09-02 6:32 ` Wolfgang Grandegger
2010-08-11 13:04 ` Marc Kleine-Budde
2010-09-13 12:07 ` Masayuki Ohtake
[not found] ` <005f01cb533e$5c21d530$66f8800a-a06+6cuVnkTSQfdrb5gaxUEOCMrvLtNR@public.gmane.org>
2010-09-13 12:29 ` Marc Kleine-Budde
2010-09-14 0:46 ` Masayuki Ohtake
2010-09-14 7:08 ` Marc Kleine-Budde
[not found] ` <003a01cb53a6$4ca724d0$66f8800a-a06+6cuVnkTSQfdrb5gaxUEOCMrvLtNR@public.gmane.org>
2010-09-15 7:42 ` Wolfgang Grandegger
[not found] ` <4C9078D3.50300-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org>
2010-09-15 9:42 ` Oliver Hartkopp
2010-09-15 10:55 ` Wolfgang Grandegger
2010-09-15 12:04 ` Marc Kleine-Budde
2010-09-15 12:11 ` Wolfgang Grandegger
2010-09-13 15:22 ` Greg KH
2010-09-14 8:48 ` Masayuki Ohtake
[not found] ` <00ca01cb53e9$a50c1930$66f8800a-a06+6cuVnkTSQfdrb5gaxUEOCMrvLtNR@public.gmane.org>
2010-09-14 13:10 ` Greg KH
2010-09-15 1:21 ` Masayuki Ohtake
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4C6393F0.5090005@hartkopp.net \
--to=socketcan-fj+pqtutwrtk1umjsbkqmq@public.gmane.org \
--cc=andrew.chih.howe.khor-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=arjan-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=gregkh-l3A5Bk7waGM@public.gmane.org \
--cc=masa-korg-ECg8zkTtlr0C6LszWs/t0g@public.gmane.org \
--cc=meego-dev-WXzIur8shnEAvxtiuMwx3w@public.gmane.org \
--cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=qi.wang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=socketcan-core-0fE9KPoRgkgATYTw5x5z8w@public.gmane.org \
--cc=wg-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org \
--cc=yong.y.wang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.