Re: [PATCH-v4 2/3] mfd: 88pm800: Set default interrupt clear method

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 






On Thursday 25 June 2015 05:15 PM, Krzysztof Kozlowski wrote:
2015-06-25 20:19 GMT+09:00 Vaibhav Hiremath <vaibhav.hiremath@xxxxxxxxxx>:


On Thursday 25 June 2015 03:56 PM, Lee Jones wrote:

(...)

diff --git a/include/linux/mfd/88pm80x.h b/include/linux/mfd/88pm80x.h
index 97cb283..94b3dcd 100644
--- a/include/linux/mfd/88pm80x.h
+++ b/include/linux/mfd/88pm80x.h
@@ -77,6 +77,8 @@ enum {
   #define PM800_WAKEUP2         (0x0E)
   #define PM800_WAKEUP2_INV_INT         (1 << 0)
   #define PM800_WAKEUP2_INT_CLEAR               (1 << 1)
+#define PM800_WAKEUP2_INT_READ_CLEAR           (0 << 1)
+#define PM800_WAKEUP2_INT_WRITE_CLEAR          (1 << 1)
   #define PM800_WAKEUP2_INT_MASK                (1 << 2)


Use the BIT() macro.


I thought about this, but the whole file doesn't use it, so I also
chose not to.


   #define PM800_POWER_UP_LOG    (0x10)
@@ -300,7 +302,7 @@ struct pm80x_chip {
         struct regmap_irq_chip_data *irq_data;
         int type;
         int irq;
-       int irq_mode;
+       int irq_clr_on_wr;      /* '1': Clear on write, '0': Clear on
read*/


Whitespace issue.


Didn't see any...and I also ran checkpatch.

Shouldn't this be a bool?


Just was not sure about any older board file interface.
Ideally it should be bool only.

Actually even better, I would define; CLR_ON_WRITE and CLR_ON_READ,
and call the variable irq_clear_method, or something.

Much clearer that way I think.


We have slowly decided to almost hardcode it to one value if there is
no board file. I feel we should just keep it to simple.

If you still insist, I can implement.

The bool would be indeed nicer and still you could hard-code the
desired value on DT system:
+               /* by default, set irq clear method on write */
+               pdata->irq_clear_method = CLR_ON_WRITE;

However the question is how this would influence existing platforms
using board files. Are there any in kernel or in downstream?


No, not atleast I am aware of.
I did grep on mainline kernel, and here is what I got


drivers/regulator/88pm800.c: struct pm80x_platform_data *pdata = dev_get_platdata(pdev->dev.parent);
drivers/mfd/88pm800.c:				       struct pm80x_platform_data *pdata)
drivers/mfd/88pm800.c:				struct pm80x_platform_data *pdata)
drivers/mfd/88pm800.c:				struct pm80x_platform_data *pdata)
drivers/mfd/88pm800.c:					   struct pm80x_platform_data *pdata)
drivers/mfd/88pm800.c:				     struct pm80x_platform_data *pdata)
drivers/mfd/88pm800.c: struct pm80x_platform_data *pdata = dev_get_platdata(&client->dev); drivers/mfd/88pm805.c: struct pm80x_platform_data *pdata = dev_get_platdata(&client->dev);
include/linux/mfd/88pm80x.h:struct pm80x_platform_data {
include/linux/mfd/88pm80x.h:				struct pm80x_platform_data *pdata);


Thanks,
Vaibhav
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux