All of lore.kernel.org
 help / color / mirror / Atom feed
From: mkl@pengutronix.de (Marc Kleine-Budde)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 01/11] mfd: add pruss mfd driver.
Date: Wed, 27 Apr 2011 09:29:59 +0200	[thread overview]
Message-ID: <4DB7C5F7.3080103@pengutronix.de> (raw)
In-Reply-To: <EDC1056430EF4DA8A0D850CE1DEA28FC@subhasishg>

On 04/27/2011 08:39 AM, Subhasish Ghosh wrote:
> Hi Mark,

I'm Marc.

> - Is it ok to have u32 etc for __iomem cookie ?

no - "void __iomem *" is "void __iomem *"


>> +s32 pruss_disable(struct device *dev, u8 pruss_num)
> make it a int function
> 
> SG -- Ok will do
> 
>> +
>> +    /* Reset PRU */
>> +    iowrite32(PRUCORE_CONTROL_RESETVAL,
>> +                &h_pruss->control);
>> +    spin_unlock(&pruss->lock);
>> +
>> +    return 0;
> 
> make it a void function?
> 
> SG -- This should be int, in case of invalid pru num, we ret an error.

Yes - Sorry.

>> +}
>> +EXPORT_SYMBOL_GPL(pruss_disable);
>> +
>> +s32 pruss_enable(struct device *dev, u8 pruss_num)
> int?
> 
> SG -- Ok will do
> 
> 
>> +
>> +    if ((pruss_num != PRUCORE_0) && (pruss_num != PRUCORE_1))
>> +        return -EINVAL;
>> +
>> +    h_pruss = &pruss_mmap->core[pruss_num];
>> +
>> +    /* Reset PRU  */
>> +    spin_lock(&pruss->lock);
>> +    iowrite32(PRUCORE_CONTROL_RESETVAL, &h_pruss->control);
> 
> no need to lock the ram reset below?
> 
> SG -- I don't think its required. We just reset the RAM during init and
> since each pru can only be attached to only one device, the access
>        will be already serialized based upon the pru num.

In the other function you lock the access to the ram, but not here.

>> +    /* Reset any garbage in the ram */
>> +    if (pruss_num == PRUCORE_0)
>> +        for (i = 0; i < PRUSS_PRU0_RAM_SZ; i++)
>> +            iowrite32(0x0, &pruss_mmap->dram0[i]);
>> +    else if (pruss_num == PRUCORE_1)
>> +        for (i = 0; i < PRUSS_PRU1_RAM_SZ; i++)
>> +            iowrite32(0x0, &pruss_mmap->dram1[i]);
> if you make a array for these
> +struct pruss_map {
> +    u8 dram0[512];
> +    u8 res1[7680];
> 
> +    u8 dram1[512];
> +    u8 res2[7680];
> ..}
> you don't need the if..else..
> 
> SG - The dram/iram is not contiguous, there is a reserved space in
> between, how do I declare an array for it.

This is the struct you have:

struct pruss_map {
	u8 dram0[512];
	u8 res1[7680];

	u8 dram1[512];
	u8 res2[7680];
...
}

If you want to describe the ram with an array it translates to:

struct pruss_dram {
	u8 dram[512];
	u8 res[7680];
};

struct pruss_map {
	struct pruss_dram[2];
...
};

BTW: Why do you declare the dram as "u8" "u32" seems more natural to me.

>> +/* Load the specified PRU with code */
>> +s32 pruss_load(struct device *dev, u8 pruss_num,
>> +            u32 *pruss_code, u32 code_size_in_words)
>> +{
>> +    struct pruss_priv *pruss = dev_get_drvdata(dev->parent);
>> +    struct pruss_map __iomem *pruss_mmap = pruss->ioaddr;
>> +    u32 __iomem *pruss_iram;
>> +    u32 i;
>> +
>> +    if (pruss_num == PRUCORE_0)
>> +        pruss_iram = (u32 __iomem *)&pruss_mmap->iram0;
>> +    else if (pruss_num == PRUCORE_1)
>> +        pruss_iram = (u32 __iomem *)&pruss_mmap->iram1;
>> +    else
> same here
> 
> SG - same here.

same here :)

>> +s32 pruss_run(struct device *dev, u8 pruss_num)
> int?
> 
> SG - Ok, Will do.
> 
> 
>> +    while (cnt--) {
>> +        temp_reg = ioread32(&h_pruss->control);
>> +        if (((temp_reg & PRUCORE_CONTROL_RUNSTATE_MASK) >>
>> +                PRUCORE_CONTROL_RUNSTATE_SHIFT) ==
>> +                PRUCORE_CONTROL_RUNSTATE_HALT)
>> +            break;
> how long might this take? what about some delay, sleep, or reschedule?
> 
> SG - This does not take more than 10 to 20 counts,

Does it make sense, that the timeout is a parameter to that function?

> 
> 
>> +s32 pruss_writeb(struct device *dev, u32 offset, u8 pdatatowrite)
>> +{
>> +    struct pruss_priv *pruss = dev_get_drvdata(dev->parent);
>> +    void __iomem *paddresstowrite;
> we usually don't use "p" variable names for pointers
> 
> SG - Ok, will remove.
> 
> 
>> +s32 pruss_rmwb(struct device *dev, u32 offset, u8 mask, u8 val)
> void function?
> 
> SG - Ok, will do.
> 
>> +
>> +s32 pruss_readb(struct device *dev, u32 offset, u8 *pdatatoread)
> void?
> 
> SG - Ok, will do.
> 
>> +{
>> +    struct pruss_priv *pruss = dev_get_drvdata(dev->parent);
>> +    void __iomem *paddresstoread;
>> +
>> +    paddresstoread = pruss->ioaddr + offset ;
>> +    *pdatatoread = ioread8(paddresstoread);
>> +
>> +    return 0;
>> +}
>> +EXPORT_SYMBOL_GPL(pruss_readb);
>> +
>> +s32 pruss_readb_multi(struct device *dev, u32 offset,
>> +        u8 *pdatatoread, u16 bytestoread)
> viod?
> 
> SG - Ok, will do.
> 
>> +{
>> +    struct pruss_priv *pruss = dev_get_drvdata(dev->parent);
>> +    u8 __iomem *paddresstoread;
>> +    u16 i;
> int?
> 
> SG - Ok, will do.
> 
> 
> 
>> +    return 0;
>> +}
>> +EXPORT_SYMBOL_GPL(pruss_readb_multi);
>> +
>> +s32 pruss_writel(struct device *dev, u32 offset,
>> +        u32 pdatatowrite)
> void?
> 
> SG - Ok, will do.
> 
> 
>> +    return 0;
>> +}
>> +EXPORT_SYMBOL_GPL(pruss_writel);
>> +
>> +s32 pruss_writel_multi(struct device *dev, u32 offset,
>> +        u32 *pdatatowrite, u16 wordstowrite)
> void?
> 
> SG - Ok, will do.
> 
>> +{
>> +    struct pruss_priv *pruss = dev_get_drvdata(dev->parent);
>> +    u32 __iomem *paddresstowrite;
>> +    u16 i;
>> +
>> +    paddresstowrite = pruss->ioaddr + offset;
>> +
>> +    for (i = 0; i < wordstowrite; i++)
>> +        iowrite32(*pdatatowrite++, paddresstowrite++);
> memcopy_to_iomem?
> 
> SG -- I did not understand, could you please elaborate.

You could use memcpy_toio() - although it seems it does copy bytes
internally.

http://lxr.linux.no/linux+v2.6.38/arch/arm/include/asm/io.h#L222
> 
> 
>> +
>> +s32 pruss_rmwl(struct device *dev, u32 offset, u32 mask, u32 val)
> void?
> 
> SG - Ok, will do.
> 
> 
>> +}
>> +EXPORT_SYMBOL_GPL(pruss_rmwl);
>> +
>> +s32 pruss_readl(struct device *dev, u32 offset, u32 *pdatatoread)
> void? or return the read value
> 
> SG - Ok, will do.
> 
> 
> 

regards,
Marc

-- 
Pengutronix e.K.                  | Marc Kleine-Budde           |
Industrial Linux Solutions        | Phone: +49-231-2826-924     |
Vertretung West/Dortmund          | Fax:   +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686  | http://www.pengutronix.de   |

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 262 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20110427/0ddba555/attachment-0001.sig>

WARNING: multiple messages have this Message-ID (diff)
From: Marc Kleine-Budde <mkl@pengutronix.de>
To: Subhasish Ghosh <subhasish@mistralsolutions.com>
Cc: davinci-linux-open-source@linux.davincidsp.com,
	sachi@mistralsolutions.com, Samuel Ortiz <sameo@linux.intel.com>,
	nsekhar@ti.com, open list <linux-kernel@vger.kernel.org>,
	m-watkins@ti.com, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v4 01/11] mfd: add pruss mfd driver.
Date: Wed, 27 Apr 2011 09:29:59 +0200	[thread overview]
Message-ID: <4DB7C5F7.3080103@pengutronix.de> (raw)
In-Reply-To: <EDC1056430EF4DA8A0D850CE1DEA28FC@subhasishg>

[-- Attachment #1: Type: text/plain, Size: 6277 bytes --]

On 04/27/2011 08:39 AM, Subhasish Ghosh wrote:
> Hi Mark,

I'm Marc.

> - Is it ok to have u32 etc for __iomem cookie ?

no - "void __iomem *" is "void __iomem *"


>> +s32 pruss_disable(struct device *dev, u8 pruss_num)
> make it a int function
> 
> SG -- Ok will do
> 
>> +
>> +    /* Reset PRU */
>> +    iowrite32(PRUCORE_CONTROL_RESETVAL,
>> +                &h_pruss->control);
>> +    spin_unlock(&pruss->lock);
>> +
>> +    return 0;
> 
> make it a void function?
> 
> SG -- This should be int, in case of invalid pru num, we ret an error.

Yes - Sorry.

>> +}
>> +EXPORT_SYMBOL_GPL(pruss_disable);
>> +
>> +s32 pruss_enable(struct device *dev, u8 pruss_num)
> int?
> 
> SG -- Ok will do
> 
> 
>> +
>> +    if ((pruss_num != PRUCORE_0) && (pruss_num != PRUCORE_1))
>> +        return -EINVAL;
>> +
>> +    h_pruss = &pruss_mmap->core[pruss_num];
>> +
>> +    /* Reset PRU  */
>> +    spin_lock(&pruss->lock);
>> +    iowrite32(PRUCORE_CONTROL_RESETVAL, &h_pruss->control);
> 
> no need to lock the ram reset below?
> 
> SG -- I don't think its required. We just reset the RAM during init and
> since each pru can only be attached to only one device, the access
>        will be already serialized based upon the pru num.

In the other function you lock the access to the ram, but not here.

>> +    /* Reset any garbage in the ram */
>> +    if (pruss_num == PRUCORE_0)
>> +        for (i = 0; i < PRUSS_PRU0_RAM_SZ; i++)
>> +            iowrite32(0x0, &pruss_mmap->dram0[i]);
>> +    else if (pruss_num == PRUCORE_1)
>> +        for (i = 0; i < PRUSS_PRU1_RAM_SZ; i++)
>> +            iowrite32(0x0, &pruss_mmap->dram1[i]);
> if you make a array for these
> +struct pruss_map {
> +    u8 dram0[512];
> +    u8 res1[7680];
> 
> +    u8 dram1[512];
> +    u8 res2[7680];
> ..}
> you don't need the if..else..
> 
> SG - The dram/iram is not contiguous, there is a reserved space in
> between, how do I declare an array for it.

This is the struct you have:

struct pruss_map {
	u8 dram0[512];
	u8 res1[7680];

	u8 dram1[512];
	u8 res2[7680];
...
}

If you want to describe the ram with an array it translates to:

struct pruss_dram {
	u8 dram[512];
	u8 res[7680];
};

struct pruss_map {
	struct pruss_dram[2];
...
};

BTW: Why do you declare the dram as "u8" "u32" seems more natural to me.

>> +/* Load the specified PRU with code */
>> +s32 pruss_load(struct device *dev, u8 pruss_num,
>> +            u32 *pruss_code, u32 code_size_in_words)
>> +{
>> +    struct pruss_priv *pruss = dev_get_drvdata(dev->parent);
>> +    struct pruss_map __iomem *pruss_mmap = pruss->ioaddr;
>> +    u32 __iomem *pruss_iram;
>> +    u32 i;
>> +
>> +    if (pruss_num == PRUCORE_0)
>> +        pruss_iram = (u32 __iomem *)&pruss_mmap->iram0;
>> +    else if (pruss_num == PRUCORE_1)
>> +        pruss_iram = (u32 __iomem *)&pruss_mmap->iram1;
>> +    else
> same here
> 
> SG - same here.

same here :)

>> +s32 pruss_run(struct device *dev, u8 pruss_num)
> int?
> 
> SG - Ok, Will do.
> 
> 
>> +    while (cnt--) {
>> +        temp_reg = ioread32(&h_pruss->control);
>> +        if (((temp_reg & PRUCORE_CONTROL_RUNSTATE_MASK) >>
>> +                PRUCORE_CONTROL_RUNSTATE_SHIFT) ==
>> +                PRUCORE_CONTROL_RUNSTATE_HALT)
>> +            break;
> how long might this take? what about some delay, sleep, or reschedule?
> 
> SG - This does not take more than 10 to 20 counts,

Does it make sense, that the timeout is a parameter to that function?

> 
> 
>> +s32 pruss_writeb(struct device *dev, u32 offset, u8 pdatatowrite)
>> +{
>> +    struct pruss_priv *pruss = dev_get_drvdata(dev->parent);
>> +    void __iomem *paddresstowrite;
> we usually don't use "p" variable names for pointers
> 
> SG - Ok, will remove.
> 
> 
>> +s32 pruss_rmwb(struct device *dev, u32 offset, u8 mask, u8 val)
> void function?
> 
> SG - Ok, will do.
> 
>> +
>> +s32 pruss_readb(struct device *dev, u32 offset, u8 *pdatatoread)
> void?
> 
> SG - Ok, will do.
> 
>> +{
>> +    struct pruss_priv *pruss = dev_get_drvdata(dev->parent);
>> +    void __iomem *paddresstoread;
>> +
>> +    paddresstoread = pruss->ioaddr + offset ;
>> +    *pdatatoread = ioread8(paddresstoread);
>> +
>> +    return 0;
>> +}
>> +EXPORT_SYMBOL_GPL(pruss_readb);
>> +
>> +s32 pruss_readb_multi(struct device *dev, u32 offset,
>> +        u8 *pdatatoread, u16 bytestoread)
> viod?
> 
> SG - Ok, will do.
> 
>> +{
>> +    struct pruss_priv *pruss = dev_get_drvdata(dev->parent);
>> +    u8 __iomem *paddresstoread;
>> +    u16 i;
> int?
> 
> SG - Ok, will do.
> 
> 
> 
>> +    return 0;
>> +}
>> +EXPORT_SYMBOL_GPL(pruss_readb_multi);
>> +
>> +s32 pruss_writel(struct device *dev, u32 offset,
>> +        u32 pdatatowrite)
> void?
> 
> SG - Ok, will do.
> 
> 
>> +    return 0;
>> +}
>> +EXPORT_SYMBOL_GPL(pruss_writel);
>> +
>> +s32 pruss_writel_multi(struct device *dev, u32 offset,
>> +        u32 *pdatatowrite, u16 wordstowrite)
> void?
> 
> SG - Ok, will do.
> 
>> +{
>> +    struct pruss_priv *pruss = dev_get_drvdata(dev->parent);
>> +    u32 __iomem *paddresstowrite;
>> +    u16 i;
>> +
>> +    paddresstowrite = pruss->ioaddr + offset;
>> +
>> +    for (i = 0; i < wordstowrite; i++)
>> +        iowrite32(*pdatatowrite++, paddresstowrite++);
> memcopy_to_iomem?
> 
> SG -- I did not understand, could you please elaborate.

You could use memcpy_toio() - although it seems it does copy bytes
internally.

http://lxr.linux.no/linux+v2.6.38/arch/arm/include/asm/io.h#L222
> 
> 
>> +
>> +s32 pruss_rmwl(struct device *dev, u32 offset, u32 mask, u32 val)
> void?
> 
> SG - Ok, will do.
> 
> 
>> +}
>> +EXPORT_SYMBOL_GPL(pruss_rmwl);
>> +
>> +s32 pruss_readl(struct device *dev, u32 offset, u32 *pdatatoread)
> void? or return the read value
> 
> SG - Ok, will do.
> 
> 
> 

regards,
Marc

-- 
Pengutronix e.K.                  | Marc Kleine-Budde           |
Industrial Linux Solutions        | Phone: +49-231-2826-924     |
Vertretung West/Dortmund          | Fax:   +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686  | http://www.pengutronix.de   |


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 262 bytes --]

  reply	other threads:[~2011-04-27  7:29 UTC|newest]

Thread overview: 162+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-22 12:08 [PATCH v4 00/11] pruss mfd drivers Subhasish Ghosh
2011-04-22 11:50 ` [PATCH v4 08/11] tty: add pruss SUART driver Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-25 21:20   ` Greg KH
2011-04-25 21:20     ` Greg KH
2011-04-26  6:51     ` Nori, Sekhar
2011-04-26  6:51       ` Nori, Sekhar
2011-04-26 12:45       ` Greg KH
2011-04-26 12:45         ` Greg KH
2011-04-27  5:23         ` Subhasish Ghosh
2011-04-27  5:23           ` Subhasish Ghosh
2011-04-27 11:19           ` Nori, Sekhar
2011-04-27 11:19             ` Nori, Sekhar
2011-04-27 13:15             ` Subhasish Ghosh
2011-04-27 13:15               ` Subhasish Ghosh
2011-04-27 17:50               ` Nori, Sekhar
2011-04-27 17:50                 ` Nori, Sekhar
2011-05-02  8:34                 ` Subhasish Ghosh
2011-05-02  8:34                   ` Subhasish Ghosh
2011-05-02 17:15                   ` Nori, Sekhar
2011-05-02 17:15                     ` Nori, Sekhar
2011-05-10 10:54             ` Subhasish Ghosh
2011-05-10 10:54               ` Subhasish Ghosh
2011-05-10 13:13               ` Nori, Sekhar
2011-05-10 13:13                 ` Nori, Sekhar
2011-05-13 12:10                 ` Subhasish Ghosh
2011-05-13 12:10                   ` Subhasish Ghosh
2011-05-09 13:39   ` Subhasish Ghosh
2011-05-09 13:39     ` Subhasish Ghosh
2011-05-09 13:46     ` Alan Cox
2011-05-09 13:46       ` Alan Cox
2011-05-09 13:50       ` Subhasish Ghosh
2011-05-09 13:50         ` Subhasish Ghosh
2011-05-09 13:55         ` Alan Cox
2011-05-09 13:55           ` Alan Cox
2011-05-10  6:17           ` Subhasish Ghosh
2011-05-10  6:17             ` Subhasish Ghosh
2011-05-10 13:32             ` Alan Cox
2011-05-10 13:32               ` Alan Cox
2011-05-11  7:01               ` Subhasish Ghosh
2011-05-11  7:01                 ` Subhasish Ghosh
2011-05-11 10:35                 ` Alan Cox
2011-05-11 10:35                   ` Alan Cox
2011-04-22 12:08 ` [PATCH v4 01/11] mfd: add pruss mfd driver Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-22 16:00   ` Marc Kleine-Budde
2011-04-22 16:00     ` Marc Kleine-Budde
2011-04-27  6:39     ` Subhasish Ghosh
2011-04-27  6:39       ` Subhasish Ghosh
2011-04-27  7:29       ` Marc Kleine-Budde [this message]
2011-04-27  7:29         ` Marc Kleine-Budde
2011-04-27  9:12         ` Russell King - ARM Linux
2011-04-27  9:12           ` Russell King - ARM Linux
2011-04-27 13:18           ` Subhasish Ghosh
2011-04-27 13:18             ` Subhasish Ghosh
2011-04-27 13:35             ` Marc Kleine-Budde
2011-04-27 13:35               ` Marc Kleine-Budde
2011-04-28  7:22               ` Subhasish Ghosh
2011-04-28  7:22                 ` Subhasish Ghosh
2011-04-28  7:46                 ` Arnd Bergmann
2011-04-28  7:46                   ` Arnd Bergmann
2011-04-27 13:16   ` Arnd Bergmann
2011-04-27 13:16     ` Arnd Bergmann
2011-04-27 13:38     ` Subhasish Ghosh
2011-04-27 13:38       ` Subhasish Ghosh
2011-04-27 14:05       ` Arnd Bergmann
2011-04-27 14:05         ` Arnd Bergmann
2011-04-28  7:17         ` Subhasish Ghosh
2011-04-28  7:17           ` Subhasish Ghosh
2011-04-28  7:35           ` Arnd Bergmann
2011-04-28  7:35             ` Arnd Bergmann
2011-05-04  7:18             ` Subhasish Ghosh
2011-05-04  7:18               ` Subhasish Ghosh
2011-05-04 13:44               ` Arnd Bergmann
2011-05-04 13:44                 ` Arnd Bergmann
2011-05-04 14:38               ` Nori, Sekhar
2011-05-04 14:38                 ` Nori, Sekhar
2011-05-05 13:25                 ` Subhasish Ghosh
2011-05-05 13:25                   ` Subhasish Ghosh
2011-05-05 14:12                   ` Arnd Bergmann
2011-05-05 14:12                     ` Arnd Bergmann
2011-05-10  9:53                     ` Subhasish Ghosh
2011-05-10  9:53                       ` Subhasish Ghosh
2011-05-10 21:44                       ` Arnd Bergmann
2011-05-10 21:44                         ` Arnd Bergmann
2011-05-11  9:28                         ` Subhasish Ghosh
2011-05-11  9:28                           ` Subhasish Ghosh
2011-05-11 20:03                           ` Arnd Bergmann
2011-05-11 20:03                             ` Arnd Bergmann
2011-05-13 10:55                             ` Subhasish Ghosh
2011-05-13 10:55                               ` Subhasish Ghosh
2011-05-14 16:01                               ` Mark Brown
2011-05-14 16:01                                 ` Mark Brown
2011-05-14 20:33                                 ` Arnd Bergmann
2011-05-14 20:33                                   ` Arnd Bergmann
2011-05-14 22:14                                   ` Mark Brown
2011-05-14 22:14                                     ` Mark Brown
2011-05-15  9:33                                     ` Arnd Bergmann
2011-05-15  9:33                                       ` Arnd Bergmann
2011-05-16  6:06                                       ` Subhasish Ghosh
2011-05-16  6:06                                         ` Subhasish Ghosh
2011-05-23 15:30                                         ` Arnd Bergmann
2011-05-23 15:30                                           ` Arnd Bergmann
2011-05-24 12:17                                           ` Subhasish Ghosh
2011-05-24 12:17                                             ` Subhasish Ghosh
2011-05-24 12:40                                             ` Arnd Bergmann
2011-05-24 12:40                                               ` Arnd Bergmann
2011-05-24 13:43                                               ` Greg KH
2011-05-24 13:43                                                 ` Greg KH
2011-05-30 13:25                                                 ` Subhasish Ghosh
2011-05-30 13:25                                                   ` Subhasish Ghosh
2011-05-30 14:02                                                   ` Greg KH
2011-05-30 14:02                                                     ` Greg KH
2011-05-30 14:38                                                     ` Subhasish Ghosh
2011-05-30 14:38                                                       ` Subhasish Ghosh
2011-05-30 14:04                                                   ` Arnd Bergmann
2011-05-30 14:04                                                     ` Arnd Bergmann
2011-05-30 14:13                                                     ` Subhasish Ghosh
2011-05-30 14:13                                                       ` Subhasish Ghosh
2011-05-30 14:43                                                       ` Arnd Bergmann
2011-05-30 14:43                                                         ` Arnd Bergmann
2011-05-30 15:28                                                         ` Subhasish Ghosh
2011-05-30 15:28                                                           ` Subhasish Ghosh
2011-05-22 20:24                                   ` Samuel Ortiz
2011-05-22 20:24                                     ` Samuel Ortiz
2011-05-22 20:21                             ` Samuel Ortiz
2011-05-22 20:21                               ` Samuel Ortiz
2011-05-23 15:13                               ` Arnd Bergmann
2011-05-23 15:13                                 ` Arnd Bergmann
2011-04-22 12:08 ` [PATCH v4 02/11] da850: add pruss clock Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-22 12:08 ` [PATCH v4 03/11] da850: pruss platform specific additions Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-26 11:06   ` Sergei Shtylyov
2011-04-26 11:06     ` Sergei Shtylyov
2011-04-27  6:43     ` Subhasish Ghosh
2011-04-27  6:43       ` Subhasish Ghosh
2011-04-27 10:05       ` Sergei Shtylyov
2011-04-27 10:05         ` Sergei Shtylyov
2011-04-27 10:19         ` Subhasish Ghosh
2011-04-27 10:19           ` Subhasish Ghosh
2011-04-22 12:08 ` [PATCH v4 04/11] da850: pruss board " Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-22 12:08 ` [PATCH v4 05/11] mfd: pruss SUART private data Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-22 12:08 ` [PATCH v4 06/11] da850: pruss SUART board specific additions Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-22 12:08 ` [PATCH v4 07/11] da850: pruss SUART platform " Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-22 12:08 ` [PATCH v4 09/11] mfd: pruss CAN private data Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-22 12:08 ` [PATCH v4 10/11] da850: pruss CAN platform specific additions Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-22 12:08 ` [PATCH v4 11/11] da850: pruss CAN board " Subhasish Ghosh
2011-04-22 12:08   ` Subhasish Ghosh
2011-04-22 16:03   ` Marc Kleine-Budde
2011-04-22 16:03     ` Marc Kleine-Budde
2011-04-26 10:57   ` Sergei Shtylyov
2011-04-26 10:57     ` Sergei Shtylyov
2011-04-27  7:03     ` Subhasish Ghosh
2011-04-27  7:03       ` Subhasish Ghosh
  -- strict thread matches above, loose matches on Subject: below --
2011-05-20  5:38 [PATCH v4 01/11] mfd: add pruss mfd driver Subhasish Ghosh

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=4DB7C5F7.3080103@pengutronix.de \
    --to=mkl@pengutronix.de \
    --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 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.