From: Ian Abbott <abbotti@mev.co.uk>
To: Hartley Sweeten <HartleyS@visionengravers.com>,
Brilliantov Kirill Vladimirovich <brilliantov@inbox.ru>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] staging/comedi: fix sparse warning: shift too big
Date: Fri, 2 May 2014 21:24:48 +0100 [thread overview]
Message-ID: <5363FF10.306@mev.co.uk> (raw)
In-Reply-To: <DC148C5AA1CEBA4E87973D432B1C2D8825E355FD@P3PWEX4MB008.ex4.secureserver.net>
On 02/05/14 19:28, Hartley Sweeten wrote:
> On Friday, May 02, 2014 9:50 AM, Ian Abbott wrote:
>> On 2014-05-02 15:57, Brilliantov Kirill Vladimirovich wrote:
>>> Signed-off-by: Brilliantov Kirill Vladimirovich <brilliantov@inbox.ru>
>>> ---
>>> drivers/staging/comedi/drivers/ni_stc.h | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/staging/comedi/drivers/ni_stc.h b/drivers/staging/comedi/drivers/ni_stc.h
>>> index f0630b78..197b568 100644
>>> --- a/drivers/staging/comedi/drivers/ni_stc.h
>>> +++ b/drivers/staging/comedi/drivers/ni_stc.h
>>> @@ -717,7 +717,7 @@ enum AI_AO_Select_Bits {
>>> static inline unsigned ni_stc_dma_channel_select_bitfield(unsigned channel)
>>> {
>>> if (channel < 4)
>>> - return 1 << channel;
>>> + return 1 << (channel & 0x3);
>>> if (channel == 4)
>>> return 0x3;
>>> if (channel == 5)
>>>
>>
>> The warning seems a bit spurious!
>
> The whole mite.c driver and it's users are all a bit of a mess.
>
> I did find the information about the "AI AO Select Register" in the National
> Instruments PCI E Series manual:
>
> -----
>
> The AI AO Select Register contains 8 bits that control the logical DMA selection for the
> analog input and analog output resources. The contents of this register are cleared upon power
> up and after a reset condition.
> Address: base address + 0x09
> Type: write-only
> Word size: 8-bit
>
> Bit Name Description
> 7-4 Reserved Reserved-Always write 0 to these bits (for PCI-6032E
> and PCI-6033E only).
> 7-4 Output<D..A> Analog Output Logical Channel D through A-These four
> bits select the logical channels of the MITE to be used by
> the analog output. You can only set one of these bits at a
> time (except for the PCI-6032E and PCI-6033E).
> 3-0 Input<D..A> Analog Input Logical Channel D through A-These four
> bits select the logical channels to be used by the analog
> input. You can only set one of these bits at a time.
>
> -----
>
> Based on this the ni_stc_dma_channel_select_bitfield() function appears to be
> incorrect. The "channel"s should only be in the range 0 to 3 and result in a returned
> bitfield of:
>
> channel bitfield Description
> 0 0x01 Analog Input or Output Channel A
> 1 0x02 Analog Input or Output Channel B
> 2 0x04 Analog Input or Output Channel C
> 3 0x08 Analog Input or Output Channel D
>
> Just my two cents...
Apparently, the M-series cards have six DMA channels - two more than the
E-series cards. They must have decided to keep the existing bitfield
encoding for the first four channels for backwards compatibility, and
use special bitfield values for the extra channels.
--
-=( Ian Abbott @ MEV Ltd. E-mail: <abbotti@mev.co.uk> )=-
-=( Tel: +44 (0)161 477 1898 FAX: +44 (0)161 718 3587 )=-
next prev parent reply other threads:[~2014-05-02 20:37 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-02 14:57 [PATCH] staging/comedi: fix sparse warning: shift too big Brilliantov Kirill Vladimirovich
2014-05-02 16:49 ` Ian Abbott
2014-05-02 18:28 ` Hartley Sweeten
2014-05-02 20:24 ` Ian Abbott [this message]
2014-05-03 23:58 ` Greg Kroah-Hartman
2014-05-04 7:46 ` Brilliantov Kirill Vladimirovich
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=5363FF10.306@mev.co.uk \
--to=abbotti@mev.co.uk \
--cc=HartleyS@visionengravers.com \
--cc=brilliantov@inbox.ru \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.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.