From: subhasish@mistralsolutions.com (Subhasish Ghosh)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 1/7] mfd: add pruss mfd driver.
Date: Wed, 30 Mar 2011 12:46:07 +0530 [thread overview]
Message-ID: <17BF3847C06240EC921FB684D3120DEC@subhasishg> (raw)
In-Reply-To: <201103111628.57549.arnd@arndb.de>
>> +s32 pruss_disable(struct device *dev, u8 pruss_num)
>> +{
>> + struct da8xx_pruss *pruss = dev_get_drvdata(dev->parent);
>> + struct da8xx_prusscore_regs *h_pruss;
>> + struct pruss_map *pruss_mmap = (struct pruss_map *)pruss->ioaddr;
>> + u32 temp_reg;
>> + u32 delay_cnt;
>
> Can you explain the significance of pruss_num? As far as I
> can tell, you always pass constants in here, so it should
> be possible to determine the number from the device.
SG - The number is not programmed in the device, I need something to decide
which PRU to disable
or enable.
>> + ~DA8XX_PRUCORE_CONTROL_COUNTENABLE_MASK) |
>> + ((DA8XX_PRUCORE_CONTROL_COUNTENABLE_DISABLE <<
>> + DA8XX_PRUCORE_CONTROL_COUNTENABLE_SHIFT) &
>> + DA8XX_PRUCORE_CONTROL_COUNTENABLE_MASK);
>> + __raw_writel(temp_reg, &h_pruss->CONTROL);
>
> Better use readl/writel, the __raw_ variants are not reliable in general.
SG - Have changed this to iowrite32 and variants.
>> +
>> + /* Reset PRU0 */
>> + for (delay_cnt = 0x10000; delay_cnt > 0; delay_cnt--)
>> + __raw_writel(DA8XX_PRUCORE_CONTROL_RESETVAL,
>> + &h_pruss->CONTROL);
>
> Why do you need to reset it 65536 times? Is once not enough?
SG - I am not sure why this was done, but I have removed it now.
>> + }
>> + spin_unlock(&pruss->lock);
>
> This is almost the exact same code as for the DA8XX_PRUCORE_0 case.
> Please be a little more creative in order to avoid such code duplication.
SG - Ok, cleanup done.
>> +
>> + for (loop = 0; loop < bytestowrite; loop++)
>> + __raw_writeb(*pdatatowrite++, paddresstowrite++);
>> +
>> + return 0;
>> +}
>> +EXPORT_SYMBOL(pruss_writeb);
>
> I would recommend providing a simpler variant of your all I/O accessors,
> which write a single word. Most of the users of these simply
> pass bytestowrite=1 anyway, so the caller can become more readable.
SG - At some sections in the code I am using upto 8 bytescount.
If its ok, I would want to keep it as is.
>
> Also, my comments about __raw_* and Marc's comments about the
> type cast apply to all of these.
SG - Changed to iowrite32 variants and also used make C=1
>> + err = mfd_add_devices(dev, 0, &cell, 1, NULL, 0);
>> + if (err) {
>> + dev_err(dev, "cannot add mfd cells\n");
>> + return err;
>> + }
>> + dev_info(dev, "mfd: added %s device\n",
>> + dev_data[count].dev_name);
>> + }
>> +
>> + return err;
>> +}
>
> This would get much simpler if you just replaced the da8xx_pruss_devices
> array with an mfd_cell array.
SG - Will do.
next prev parent reply other threads:[~2011-03-30 7:16 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-08 13:57 [PATCH v3 0/7] pruss mfd drivers Subhasish Ghosh
2011-03-08 13:57 ` [PATCH v3 1/7] mfd: add pruss mfd driver Subhasish Ghosh
2011-03-09 11:56 ` Marc Kleine-Budde
2011-03-24 13:16 ` Subhasish Ghosh
2011-03-24 13:24 ` Marc Kleine-Budde
2011-03-24 13:41 ` Kurt Van Dijck
2011-03-11 15:28 ` Arnd Bergmann
2011-03-30 7:16 ` Subhasish Ghosh [this message]
2011-03-30 10:59 ` Arnd Bergmann
2011-04-05 6:40 ` Subhasish Ghosh
2011-03-30 9:15 ` Subhasish Ghosh
2011-03-30 11:38 ` Arnd Bergmann
2011-03-18 11:59 ` Nori, Sekhar
2011-03-18 12:39 ` Mark Brown
2011-03-22 9:35 ` Nori, Sekhar
2011-03-22 9:43 ` Nori, Sekhar
2011-03-22 16:52 ` Mark Brown
2011-03-08 13:57 ` [PATCH v3 2/7] da850: pruss platform specific additions Subhasish Ghosh
2011-03-08 15:17 ` Sergei Shtylyov
2011-03-08 13:57 ` [PATCH v3 3/7] da850: pruss board " Subhasish Ghosh
2011-03-08 15:19 ` Sergei Shtylyov
2011-03-09 4:29 ` Subhasish Ghosh
2011-03-09 11:59 ` Marc Kleine-Budde
2011-03-08 13:57 ` [PATCH v3 4/7] mfd: pruss SUART private data Subhasish Ghosh
2011-03-08 13:57 ` [PATCH v3 5/7] da850: pruss SUART board specific additions Subhasish Ghosh
2011-03-08 13:57 ` [PATCH v3 6/7] da850: pruss SUART platform " Subhasish Ghosh
2011-03-08 13:57 ` [PATCH v3 7/7] tty: add pruss SUART driver Subhasish Ghosh
2011-03-08 18:47 ` Randy Dunlap
2011-03-15 7:23 ` Subhasish Ghosh
2011-03-18 5:43 ` Subhasish Ghosh
2011-03-18 11:45 ` Alan Cox
2011-03-18 12:07 ` Arnd Bergmann
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=17BF3847C06240EC921FB684D3120DEC@subhasishg \
--to=subhasish@mistralsolutions.com \
--cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox