All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthias Brugger <matthias.bgg@gmail.com>
To: Gene Chen <gene.chen.richtek@gmail.com>, lee.jones@linaro.org
Cc: linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org,
	gene_chen@richtek.com, shufan_lee@richtek.com,
	cy_huang@richtek.com, benjamin.chao@mediatek.com
Subject: Re: [PATCH 2/4] mfd: mt6360: Remove handle_post_irq callback function
Date: Fri, 10 Jul 2020 16:22:29 +0200	[thread overview]
Message-ID: <8fa489a0-7672-cbbd-ec04-32803ca69084@gmail.com> (raw)
In-Reply-To: <1594117856-14343-3-git-send-email-gene.chen.richtek@gmail.com>



On 07/07/2020 12:30, Gene Chen wrote:
> From: Gene Chen <gene_chen@richtek.com>
> 
> Remove handle_post_irq which is used to retrigger irq.
> Set irq level low trigger to keep irq always be handled.
> 
> Signed-off-by: Gene Chen <gene_chen@richtek.com>
> ---
>   drivers/mfd/mt6360-core.c  | 25 ++++++++-----------------
>   include/linux/mfd/mt6360.h |  6 +++---
>   2 files changed, 11 insertions(+), 20 deletions(-)
> 
> diff --git a/drivers/mfd/mt6360-core.c b/drivers/mfd/mt6360-core.c
> index 5dfc13e..2dd5918 100644
> --- a/drivers/mfd/mt6360-core.c
> +++ b/drivers/mfd/mt6360-core.c
> @@ -208,24 +208,16 @@ static const struct regmap_irq mt6360_irqs[] =  {
>   	REGMAP_IRQ_REG_LINE(MT6360_LDO7_PGB_EVT, 8),
>   };
>   
> -static int mt6360_pmu_handle_post_irq(void *irq_drv_data)
> -{
> -	struct mt6360_data *data = irq_drv_data;
> -
> -	return regmap_update_bits(data->regmap,
> -		MT6360_PMU_IRQ_SET, MT6360_IRQ_RETRIG, MT6360_IRQ_RETRIG);
> -}
> -
> -static struct regmap_irq_chip mt6360_irq_chip = {
> +static const struct regmap_irq_chip mt6360_irq_chip = {
> +	.name = "mt6360_irqs",
>   	.irqs = mt6360_irqs,
>   	.num_irqs = ARRAY_SIZE(mt6360_irqs),
> -	.num_regs = MT6360_PMU_IRQ_REGNUM,
> -	.mask_base = MT6360_PMU_CHG_MASK1,
> -	.status_base = MT6360_PMU_CHG_IRQ1,
> -	.ack_base = MT6360_PMU_CHG_IRQ1,
> +	.num_regs = MT6360_IRQ_REGNUM,
> +	.mask_base = MT6360_REG_PMU_CHGMASK1,
> +	.status_base = MT6360_REG_PMU_CHGIRQ1,
> +	.ack_base = MT6360_REG_PMU_CHGIRQ1,

Non relevant patches for the commit. Please drop this.

>   	.init_ack_masked = true,
>   	.use_ack = true,
> -	.handle_post_irq = mt6360_pmu_handle_post_irq,
>   };
>   
>   static const struct regmap_config mt6360_pmu_regmap_config = {
> @@ -339,10 +331,9 @@ static int mt6360_probe(struct i2c_client *client)
>   		return -ENODEV;
>   	}
>   
> -	mt6360_irq_chip.irq_drv_data = data;
>   	ret = devm_regmap_add_irq_chip(&client->dev, data->regmap, client->irq,
> -				       IRQF_TRIGGER_FALLING, 0,
> -				       &mt6360_irq_chip, &data->irq_data);
> +				       IRQF_ONESHOT, 0, &mt6360_irq_chip,

 From what I see IRQF_ONESHOT is set implicitly in regmap_add_irq_chip_fwnode. 
Actually I think what you want to add is IRQF_TRIGGER_LOW.

> +				       &data->irq_data);
>   	if (ret) {
>   		dev_err(&client->dev, "Failed to add Regmap IRQ Chip\n");
>   		return ret;
> diff --git a/include/linux/mfd/mt6360.h b/include/linux/mfd/mt6360.h
> index 76077e4..9fc6718 100644
> --- a/include/linux/mfd/mt6360.h
> +++ b/include/linux/mfd/mt6360.h
> @@ -179,7 +179,7 @@ struct mt6360_data {
>   #define MT6360_PMU_SPARE2			(0xA0)
>   #define MT6360_PMU_SPARE3			(0xB0)
>   #define MT6360_PMU_SPARE4			(0xC0)
> -#define MT6360_PMU_CHG_IRQ1			(0xD0)
> +#define MT6360_REG_PMU_CHGIRQ1			(0xD0)
>   #define MT6360_PMU_CHG_IRQ2			(0xD1)
>   #define MT6360_PMU_CHG_IRQ3			(0xD2)
>   #define MT6360_PMU_CHG_IRQ4			(0xD3)
> @@ -211,7 +211,7 @@ struct mt6360_data {
>   #define MT6360_PMU_BUCK2_STAT			(0xED)
>   #define MT6360_PMU_LDO_STAT1			(0xEE)
>   #define MT6360_PMU_LDO_STAT2			(0xEF)
> -#define MT6360_PMU_CHG_MASK1			(0xF0)
> +#define MT6360_REG_PMU_CHGMASK1			(0xF0)
>   #define MT6360_PMU_CHG_MASK2			(0xF1)
>   #define MT6360_PMU_CHG_MASK3			(0xF2)
>   #define MT6360_PMU_CHG_MASK4			(0xF3)
> @@ -230,7 +230,7 @@ struct mt6360_data {
>   #define MT6360_PMU_MAXREG			(MT6360_PMU_LDO_MASK2)
>   
>   /* MT6360_PMU_IRQ_SET */
> -#define MT6360_PMU_IRQ_REGNUM	(MT6360_PMU_LDO_IRQ2 - MT6360_PMU_CHG_IRQ1 + 1)

Not relevant for the commit. But why did you use this strange computation in the 
first place?

> +#define MT6360_IRQ_REGNUM	16
>   #define MT6360_IRQ_RETRIG	BIT(2)
>   
>   #define CHIP_VEN_MASK				(0xF0)
> 

WARNING: multiple messages have this Message-ID (diff)
From: Matthias Brugger <matthias.bgg@gmail.com>
To: Gene Chen <gene.chen.richtek@gmail.com>, lee.jones@linaro.org
Cc: gene_chen@richtek.com, linux-kernel@vger.kernel.org,
	cy_huang@richtek.com, benjamin.chao@mediatek.com,
	linux-mediatek@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org, shufan_lee@richtek.com
Subject: Re: [PATCH 2/4] mfd: mt6360: Remove handle_post_irq callback function
Date: Fri, 10 Jul 2020 16:22:29 +0200	[thread overview]
Message-ID: <8fa489a0-7672-cbbd-ec04-32803ca69084@gmail.com> (raw)
In-Reply-To: <1594117856-14343-3-git-send-email-gene.chen.richtek@gmail.com>



On 07/07/2020 12:30, Gene Chen wrote:
> From: Gene Chen <gene_chen@richtek.com>
> 
> Remove handle_post_irq which is used to retrigger irq.
> Set irq level low trigger to keep irq always be handled.
> 
> Signed-off-by: Gene Chen <gene_chen@richtek.com>
> ---
>   drivers/mfd/mt6360-core.c  | 25 ++++++++-----------------
>   include/linux/mfd/mt6360.h |  6 +++---
>   2 files changed, 11 insertions(+), 20 deletions(-)
> 
> diff --git a/drivers/mfd/mt6360-core.c b/drivers/mfd/mt6360-core.c
> index 5dfc13e..2dd5918 100644
> --- a/drivers/mfd/mt6360-core.c
> +++ b/drivers/mfd/mt6360-core.c
> @@ -208,24 +208,16 @@ static const struct regmap_irq mt6360_irqs[] =  {
>   	REGMAP_IRQ_REG_LINE(MT6360_LDO7_PGB_EVT, 8),
>   };
>   
> -static int mt6360_pmu_handle_post_irq(void *irq_drv_data)
> -{
> -	struct mt6360_data *data = irq_drv_data;
> -
> -	return regmap_update_bits(data->regmap,
> -		MT6360_PMU_IRQ_SET, MT6360_IRQ_RETRIG, MT6360_IRQ_RETRIG);
> -}
> -
> -static struct regmap_irq_chip mt6360_irq_chip = {
> +static const struct regmap_irq_chip mt6360_irq_chip = {
> +	.name = "mt6360_irqs",
>   	.irqs = mt6360_irqs,
>   	.num_irqs = ARRAY_SIZE(mt6360_irqs),
> -	.num_regs = MT6360_PMU_IRQ_REGNUM,
> -	.mask_base = MT6360_PMU_CHG_MASK1,
> -	.status_base = MT6360_PMU_CHG_IRQ1,
> -	.ack_base = MT6360_PMU_CHG_IRQ1,
> +	.num_regs = MT6360_IRQ_REGNUM,
> +	.mask_base = MT6360_REG_PMU_CHGMASK1,
> +	.status_base = MT6360_REG_PMU_CHGIRQ1,
> +	.ack_base = MT6360_REG_PMU_CHGIRQ1,

Non relevant patches for the commit. Please drop this.

>   	.init_ack_masked = true,
>   	.use_ack = true,
> -	.handle_post_irq = mt6360_pmu_handle_post_irq,
>   };
>   
>   static const struct regmap_config mt6360_pmu_regmap_config = {
> @@ -339,10 +331,9 @@ static int mt6360_probe(struct i2c_client *client)
>   		return -ENODEV;
>   	}
>   
> -	mt6360_irq_chip.irq_drv_data = data;
>   	ret = devm_regmap_add_irq_chip(&client->dev, data->regmap, client->irq,
> -				       IRQF_TRIGGER_FALLING, 0,
> -				       &mt6360_irq_chip, &data->irq_data);
> +				       IRQF_ONESHOT, 0, &mt6360_irq_chip,

 From what I see IRQF_ONESHOT is set implicitly in regmap_add_irq_chip_fwnode. 
Actually I think what you want to add is IRQF_TRIGGER_LOW.

> +				       &data->irq_data);
>   	if (ret) {
>   		dev_err(&client->dev, "Failed to add Regmap IRQ Chip\n");
>   		return ret;
> diff --git a/include/linux/mfd/mt6360.h b/include/linux/mfd/mt6360.h
> index 76077e4..9fc6718 100644
> --- a/include/linux/mfd/mt6360.h
> +++ b/include/linux/mfd/mt6360.h
> @@ -179,7 +179,7 @@ struct mt6360_data {
>   #define MT6360_PMU_SPARE2			(0xA0)
>   #define MT6360_PMU_SPARE3			(0xB0)
>   #define MT6360_PMU_SPARE4			(0xC0)
> -#define MT6360_PMU_CHG_IRQ1			(0xD0)
> +#define MT6360_REG_PMU_CHGIRQ1			(0xD0)
>   #define MT6360_PMU_CHG_IRQ2			(0xD1)
>   #define MT6360_PMU_CHG_IRQ3			(0xD2)
>   #define MT6360_PMU_CHG_IRQ4			(0xD3)
> @@ -211,7 +211,7 @@ struct mt6360_data {
>   #define MT6360_PMU_BUCK2_STAT			(0xED)
>   #define MT6360_PMU_LDO_STAT1			(0xEE)
>   #define MT6360_PMU_LDO_STAT2			(0xEF)
> -#define MT6360_PMU_CHG_MASK1			(0xF0)
> +#define MT6360_REG_PMU_CHGMASK1			(0xF0)
>   #define MT6360_PMU_CHG_MASK2			(0xF1)
>   #define MT6360_PMU_CHG_MASK3			(0xF2)
>   #define MT6360_PMU_CHG_MASK4			(0xF3)
> @@ -230,7 +230,7 @@ struct mt6360_data {
>   #define MT6360_PMU_MAXREG			(MT6360_PMU_LDO_MASK2)
>   
>   /* MT6360_PMU_IRQ_SET */
> -#define MT6360_PMU_IRQ_REGNUM	(MT6360_PMU_LDO_IRQ2 - MT6360_PMU_CHG_IRQ1 + 1)

Not relevant for the commit. But why did you use this strange computation in the 
first place?

> +#define MT6360_IRQ_REGNUM	16
>   #define MT6360_IRQ_RETRIG	BIT(2)
>   
>   #define CHIP_VEN_MASK				(0xF0)
> 

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

WARNING: multiple messages have this Message-ID (diff)
From: Matthias Brugger <matthias.bgg@gmail.com>
To: Gene Chen <gene.chen.richtek@gmail.com>, lee.jones@linaro.org
Cc: gene_chen@richtek.com, linux-kernel@vger.kernel.org,
	cy_huang@richtek.com, benjamin.chao@mediatek.com,
	linux-mediatek@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org, shufan_lee@richtek.com
Subject: Re: [PATCH 2/4] mfd: mt6360: Remove handle_post_irq callback function
Date: Fri, 10 Jul 2020 16:22:29 +0200	[thread overview]
Message-ID: <8fa489a0-7672-cbbd-ec04-32803ca69084@gmail.com> (raw)
In-Reply-To: <1594117856-14343-3-git-send-email-gene.chen.richtek@gmail.com>



On 07/07/2020 12:30, Gene Chen wrote:
> From: Gene Chen <gene_chen@richtek.com>
> 
> Remove handle_post_irq which is used to retrigger irq.
> Set irq level low trigger to keep irq always be handled.
> 
> Signed-off-by: Gene Chen <gene_chen@richtek.com>
> ---
>   drivers/mfd/mt6360-core.c  | 25 ++++++++-----------------
>   include/linux/mfd/mt6360.h |  6 +++---
>   2 files changed, 11 insertions(+), 20 deletions(-)
> 
> diff --git a/drivers/mfd/mt6360-core.c b/drivers/mfd/mt6360-core.c
> index 5dfc13e..2dd5918 100644
> --- a/drivers/mfd/mt6360-core.c
> +++ b/drivers/mfd/mt6360-core.c
> @@ -208,24 +208,16 @@ static const struct regmap_irq mt6360_irqs[] =  {
>   	REGMAP_IRQ_REG_LINE(MT6360_LDO7_PGB_EVT, 8),
>   };
>   
> -static int mt6360_pmu_handle_post_irq(void *irq_drv_data)
> -{
> -	struct mt6360_data *data = irq_drv_data;
> -
> -	return regmap_update_bits(data->regmap,
> -		MT6360_PMU_IRQ_SET, MT6360_IRQ_RETRIG, MT6360_IRQ_RETRIG);
> -}
> -
> -static struct regmap_irq_chip mt6360_irq_chip = {
> +static const struct regmap_irq_chip mt6360_irq_chip = {
> +	.name = "mt6360_irqs",
>   	.irqs = mt6360_irqs,
>   	.num_irqs = ARRAY_SIZE(mt6360_irqs),
> -	.num_regs = MT6360_PMU_IRQ_REGNUM,
> -	.mask_base = MT6360_PMU_CHG_MASK1,
> -	.status_base = MT6360_PMU_CHG_IRQ1,
> -	.ack_base = MT6360_PMU_CHG_IRQ1,
> +	.num_regs = MT6360_IRQ_REGNUM,
> +	.mask_base = MT6360_REG_PMU_CHGMASK1,
> +	.status_base = MT6360_REG_PMU_CHGIRQ1,
> +	.ack_base = MT6360_REG_PMU_CHGIRQ1,

Non relevant patches for the commit. Please drop this.

>   	.init_ack_masked = true,
>   	.use_ack = true,
> -	.handle_post_irq = mt6360_pmu_handle_post_irq,
>   };
>   
>   static const struct regmap_config mt6360_pmu_regmap_config = {
> @@ -339,10 +331,9 @@ static int mt6360_probe(struct i2c_client *client)
>   		return -ENODEV;
>   	}
>   
> -	mt6360_irq_chip.irq_drv_data = data;
>   	ret = devm_regmap_add_irq_chip(&client->dev, data->regmap, client->irq,
> -				       IRQF_TRIGGER_FALLING, 0,
> -				       &mt6360_irq_chip, &data->irq_data);
> +				       IRQF_ONESHOT, 0, &mt6360_irq_chip,

 From what I see IRQF_ONESHOT is set implicitly in regmap_add_irq_chip_fwnode. 
Actually I think what you want to add is IRQF_TRIGGER_LOW.

> +				       &data->irq_data);
>   	if (ret) {
>   		dev_err(&client->dev, "Failed to add Regmap IRQ Chip\n");
>   		return ret;
> diff --git a/include/linux/mfd/mt6360.h b/include/linux/mfd/mt6360.h
> index 76077e4..9fc6718 100644
> --- a/include/linux/mfd/mt6360.h
> +++ b/include/linux/mfd/mt6360.h
> @@ -179,7 +179,7 @@ struct mt6360_data {
>   #define MT6360_PMU_SPARE2			(0xA0)
>   #define MT6360_PMU_SPARE3			(0xB0)
>   #define MT6360_PMU_SPARE4			(0xC0)
> -#define MT6360_PMU_CHG_IRQ1			(0xD0)
> +#define MT6360_REG_PMU_CHGIRQ1			(0xD0)
>   #define MT6360_PMU_CHG_IRQ2			(0xD1)
>   #define MT6360_PMU_CHG_IRQ3			(0xD2)
>   #define MT6360_PMU_CHG_IRQ4			(0xD3)
> @@ -211,7 +211,7 @@ struct mt6360_data {
>   #define MT6360_PMU_BUCK2_STAT			(0xED)
>   #define MT6360_PMU_LDO_STAT1			(0xEE)
>   #define MT6360_PMU_LDO_STAT2			(0xEF)
> -#define MT6360_PMU_CHG_MASK1			(0xF0)
> +#define MT6360_REG_PMU_CHGMASK1			(0xF0)
>   #define MT6360_PMU_CHG_MASK2			(0xF1)
>   #define MT6360_PMU_CHG_MASK3			(0xF2)
>   #define MT6360_PMU_CHG_MASK4			(0xF3)
> @@ -230,7 +230,7 @@ struct mt6360_data {
>   #define MT6360_PMU_MAXREG			(MT6360_PMU_LDO_MASK2)
>   
>   /* MT6360_PMU_IRQ_SET */
> -#define MT6360_PMU_IRQ_REGNUM	(MT6360_PMU_LDO_IRQ2 - MT6360_PMU_CHG_IRQ1 + 1)

Not relevant for the commit. But why did you use this strange computation in the 
first place?

> +#define MT6360_IRQ_REGNUM	16
>   #define MT6360_IRQ_RETRIG	BIT(2)
>   
>   #define CHIP_VEN_MASK				(0xF0)
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2020-07-10 14:22 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-07 10:30 [PATCH 0/4] mfd: mt6360: Merge different sub-devices i2c read/write Gene Chen
2020-07-07 10:30 ` Gene Chen
2020-07-07 10:30 ` Gene Chen
2020-07-07 10:30 ` [PATCH 1/4] mfd: mt6360: Refactor and fix code style Gene Chen
2020-07-07 10:30   ` Gene Chen
2020-07-07 10:30   ` Gene Chen
2020-07-10 14:06   ` Matthias Brugger
2020-07-10 14:06     ` Matthias Brugger
2020-07-10 14:06     ` Matthias Brugger
2020-07-13  6:51     ` Lee Jones
2020-07-13  6:51       ` Lee Jones
2020-07-13  6:51       ` Lee Jones
2020-07-13 10:35       ` Gene Chen
2020-07-13 10:35         ` Gene Chen
2020-07-13 10:35         ` Gene Chen
2020-07-13 10:48         ` Lee Jones
2020-07-13 10:48           ` Lee Jones
2020-07-13 10:48           ` Lee Jones
2020-07-16 10:12           ` Gene Chen
2020-07-16 10:12             ` Gene Chen
2020-07-16 10:12             ` Gene Chen
2020-07-16 13:44             ` Lee Jones
2020-07-16 13:44               ` Lee Jones
2020-07-16 13:44               ` Lee Jones
2020-07-07 10:30 ` [PATCH 2/4] mfd: mt6360: Remove handle_post_irq callback function Gene Chen
2020-07-07 10:30   ` Gene Chen
2020-07-07 10:30   ` Gene Chen
2020-07-10 14:22   ` Matthias Brugger [this message]
2020-07-10 14:22     ` Matthias Brugger
2020-07-10 14:22     ` Matthias Brugger
2020-07-17  9:35     ` Gene Chen
2020-07-17  9:35       ` Gene Chen
2020-07-17  9:35       ` Gene Chen
2020-07-07 10:30 ` [PATCH 3/4] mfd: mt6360: Fix flow which is used to check ic exist Gene Chen
2020-07-07 10:30   ` Gene Chen
2020-07-07 10:30   ` Gene Chen
2020-07-10 14:25   ` Matthias Brugger
2020-07-10 14:25     ` Matthias Brugger
2020-07-10 14:25     ` Matthias Brugger
2020-07-16  9:53     ` Gene Chen
2020-07-16  9:53       ` Gene Chen
2020-07-16  9:53       ` Gene Chen
2020-07-07 10:30 ` [PATCH 4/4] mfd: mt6360: Merge different sub-devices i2c read/write into one regmap Gene Chen
2020-07-07 10:30   ` Gene Chen
2020-07-07 10:30   ` Gene Chen

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=8fa489a0-7672-cbbd-ec04-32803ca69084@gmail.com \
    --to=matthias.bgg@gmail.com \
    --cc=benjamin.chao@mediatek.com \
    --cc=cy_huang@richtek.com \
    --cc=gene.chen.richtek@gmail.com \
    --cc=gene_chen@richtek.com \
    --cc=lee.jones@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=shufan_lee@richtek.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 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.