linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Larry Finger <Larry.Finger@lwfinger.net>
To: John W Linville <linville@tuxdriver.com>
Cc: "Rafał Miłecki" <zajec5@gmail.com>, "Michael Büsch" <m@bues.ch>,
	"Michael Buesch" <mb@bu3sch.de>,
	b43-dev@lists.infradead.org, linux-wireless@vger.kernel.org
Subject: Re: [PATCH] ssb: Convert to use crc8 code in kernel library
Date: Sun, 09 Oct 2011 09:35:51 -0500	[thread overview]
Message-ID: <4E91B147.8020808@lwfinger.net> (raw)
In-Reply-To: <CACna6rz-0TZrwctTZR-YLDHG=xdt4Oc5ShbjCZiad7Cvmh0+hQ@mail.gmail.com>

On 10/09/2011 03:48 AM, Rafał Miłecki wrote:
> 2011/10/9 Michael Büsch<m@bues.ch>:
>> On Sat, 08 Oct 2011 17:28:42 -0500
>> Larry Finger<Larry.Finger@lwfinger.net>  wrote:
>>
>>> The kernel now contains library routines to establish crc8 tables and
>>> to calculate the appropriate sums. Use them for ssb.
>>
>>> +static u8 srom_crc8_table[CRC8_TABLE_SIZE];
>>> +
>>> +/* Polynomial:   x^8 + x^7 + x^6 + x^4 + x^2 + 1   */
>>> +#define SROM_CRC8_POLY       0xAB
>>> +
>>> +static inline void ltoh16_buf(u16 *buf, unsigned int size)
>>>   {
>>> +     size /= 2;
>>> +     while (size--)
>>> +             *(buf + size) = le16_to_cpu(*(__le16 *)(buf + size));
>>> +}
>>>
>>> -     return crc;
>>> +static inline void htol16_buf(u16 *buf, unsigned int size)
>>> +{
>>> +     size /= 2;
>>> +     while (size--)
>>> +             *(__le16 *)(buf + size) = cpu_to_le16(*(buf + size));
>>>   }
>>
>>>                return -ENOMEM;
>>> +     crc8_populate_lsb(srom_crc8_table, SROM_CRC8_POLY);
>>>        bus->sprom_size = SSB_SPROMSIZE_WORDS_R123;
>>>        sprom_do_read(bus, buf);
>>> +     /* convert to le */
>>> +     htol16_buf(buf, 2 * bus->sprom_size);
>>
>>>                bus->sprom_size = SSB_SPROMSIZE_WORDS_R4;
>>>                sprom_do_read(bus, buf);
>>> +             htol16_buf(buf, 2 * bus->sprom_size);
>>>                err = sprom_check_crc(buf, bus->sprom_size);
>>
>>> +     /* restore endianess */
>>> +     ltoh16_buf(buf, 2 * bus->sprom_size);
>>>        err = sprom_extract(bus, sprom, buf, bus->sprom_size);
>>
>> This endianness stuff is _really_ ugly.
>> Does this patch decrease the code size, at least? I'll almost doubt it.
>> If it doesn't, why are we actually doing this?
>> It doesn't even decrease the .data size. Worse, it converts a .const
>> table to a .data table.
>>
>> Just my 2 cents.
>
> Agree. I already tried converting bcma to use crc8:
> [RFC][WORTH IT?][PATCH] bcma: make use of crc8 lib
> http://lists.infradead.org/pipermail/b43-dev/2011-June/001466.html
>
> But resigned, it was introducing some hacks or not optimal ops, I
> decided it's not worth it.
>
> Even Arend said their brcm80211 is hacky about crc8 usage:
>
> W dniu 15 czerwca 2011 21:26 użytkownik Arend van Spriel
> <arend@broadcom.com>  napisał:
>> Agree. In brcm80211 we convert the entire sprom, calculate, and convert it
>> back. Also not perfect I think as it loops over de sprom data twice.

John,

Please drop this patch. The amount of code churning is not worth the 100 byte 
saving in the size of the generated code.

Larry



  parent reply	other threads:[~2011-10-09 14:35 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-08 22:28 [PATCH] ssb: Convert to use crc8 code in kernel library Larry Finger
2011-10-08 22:38 ` Joe Perches
2011-10-08 23:00   ` Larry Finger
2011-10-08 23:11     ` Joe Perches
2011-10-08 22:51 ` Michael Büsch
2011-10-09  8:48   ` Rafał Miłecki
2011-10-09 10:33     ` Arend van Spriel
2011-10-09 14:35     ` Larry Finger [this message]
2011-10-09  9:50   ` Arend van Spriel
2011-10-14 15:11 ` Pavel Roskin
2011-10-14 15:30   ` Arend van Spriel
2011-10-14 16:30   ` Larry Finger
2011-10-14 16:47     ` Michael Büsch
2011-10-15  8:27     ` Arend van Spriel
2011-10-15 13:29       ` Larry Finger
2011-10-15 13:53         ` Michael Büsch
2011-10-15 14:18           ` Larry Finger

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=4E91B147.8020808@lwfinger.net \
    --to=larry.finger@lwfinger.net \
    --cc=b43-dev@lists.infradead.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    --cc=m@bues.ch \
    --cc=mb@bu3sch.de \
    --cc=zajec5@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).