On 10/10/2014 06:21 PM, Lee Jones wrote:
On Fri, 10 Oct 2014, micky_ching@xxxxxxxxxxxxxx wrote:This function is a good interface, we will use it many times in the future.
From: Micky Ching <micky_ching@xxxxxxxxxxxxxx>[...]
Fix rts5227&5249 failed send buffer cmd after suspend,
PM_CTRL3 should reset before send any buffer cmd after suspend.
Otherwise, buffer cmd will failed, this will lead resume fail.
Signed-off-by: Micky Ching <micky_ching@xxxxxxxxxxxxxx>
---
drivers/mfd/Makefile | 2 +-
drivers/mfd/rts5227.c | 6 ++++++
drivers/mfd/rts5249.c | 4 ++++
drivers/mfd/rtsx_gops.c | 37 +++++++++++++++++++++++++++++++++++++
drivers/mfd/rtsx_pcr.h | 3 +++
include/linux/mfd/rtsx_pci.h | 28 ++++++++++++++++++++++++++++
6 files changed, 79 insertions(+), 1 deletion(-)
create mode 100644 drivers/mfd/rtsx_gops.c
+static inline int rtsx_pci_update_cfg_byte(struct rtsx_pcr *pcr, int addr,Why is this in here? Why not put it in the generic ops file?
+ u8 mask, u8 append)
+{
+ int err;
+ u8 val;
+
+ err = pci_read_config_byte(pcr->pci, addr, &val);
+ if (err < 0)
+ return err;
+ return pci_write_config_byte(pcr->pci, addr, (val & mask) | append);
+}
+
generic ops file is only used to some operation can be used for different chip,
some special chip may replace generic ops by provide their own ops.
So generic ops file is just use to abstract the same code, not for good interface.