Message ID | 20190811195944.23765-5-efremov@linux.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | Simplify PCIe hotplug indicator control | expand |
Hi, On 8/11/19 12:59 PM, Denis Efremov wrote: > This patch replaces pciehp_green_led_{on,off,blink}() with > pciehp_set_indicators(). > > Reviewed-by: Lukas Wunner <lukas@wunner.de> > Signed-off-by: Denis Efremov <efremov@linux.com> Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com> > --- > drivers/pci/hotplug/pciehp.h | 12 ++++++++--- > drivers/pci/hotplug/pciehp_hpc.c | 36 -------------------------------- > 2 files changed, 9 insertions(+), 39 deletions(-) > > diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h > index 9a2a2d0db9d2..6cdcb1ca561f 100644 > --- a/drivers/pci/hotplug/pciehp.h > +++ b/drivers/pci/hotplug/pciehp.h > @@ -183,9 +183,6 @@ void pciehp_set_indicators(struct controller *ctrl, > enum pciehp_indicator attn); > void pciehp_get_latch_status(struct controller *ctrl, u8 *status); > int pciehp_query_power_fault(struct controller *ctrl); > -void pciehp_green_led_on(struct controller *ctrl); > -void pciehp_green_led_off(struct controller *ctrl); > -void pciehp_green_led_blink(struct controller *ctrl); > bool pciehp_card_present(struct controller *ctrl); > bool pciehp_card_present_or_link_active(struct controller *ctrl); > int pciehp_check_link_status(struct controller *ctrl); > @@ -202,6 +199,15 @@ int pciehp_get_raw_indicator_status(struct hotplug_slot *h_slot, u8 *status); > #define pciehp_set_attention_status(ctrl, status) \ > pciehp_set_indicators(ctrl, PWR_NONE, (status == 0 ? ATTN_OFF : status)) > > +#define pciehp_green_led_on(ctrl) \ > + pciehp_set_indicators(ctrl, PWR_ON, ATTN_NONE) > + > +#define pciehp_green_led_off(ctrl) \ > + pciehp_set_indicators(ctrl, PWR_OFF, ATTN_NONE) > + > +#define pciehp_green_led_blink(ctrl) \ > + pciehp_set_indicators(ctrl, PWR_BLINK, ATTN_NONE) > + > static inline const char *slot_name(struct controller *ctrl) > { > return hotplug_slot_name(&ctrl->hotplug_slot); > diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c > index fb4bea16063a..8362d24405fd 100644 > --- a/drivers/pci/hotplug/pciehp_hpc.c > +++ b/drivers/pci/hotplug/pciehp_hpc.c > @@ -456,42 +456,6 @@ void pciehp_set_indicators(struct controller *ctrl, > cmd); > } > > -void pciehp_green_led_on(struct controller *ctrl) > -{ > - if (!PWR_LED(ctrl)) > - return; > - > - pcie_write_cmd_nowait(ctrl, PCI_EXP_SLTCTL_PWR_IND_ON, > - PCI_EXP_SLTCTL_PIC); > - ctrl_dbg(ctrl, "%s: SLOTCTRL %x write cmd %x\n", __func__, > - pci_pcie_cap(ctrl->pcie->port) + PCI_EXP_SLTCTL, > - PCI_EXP_SLTCTL_PWR_IND_ON); > -} > - > -void pciehp_green_led_off(struct controller *ctrl) > -{ > - if (!PWR_LED(ctrl)) > - return; > - > - pcie_write_cmd_nowait(ctrl, PCI_EXP_SLTCTL_PWR_IND_OFF, > - PCI_EXP_SLTCTL_PIC); > - ctrl_dbg(ctrl, "%s: SLOTCTRL %x write cmd %x\n", __func__, > - pci_pcie_cap(ctrl->pcie->port) + PCI_EXP_SLTCTL, > - PCI_EXP_SLTCTL_PWR_IND_OFF); > -} > - > -void pciehp_green_led_blink(struct controller *ctrl) > -{ > - if (!PWR_LED(ctrl)) > - return; > - > - pcie_write_cmd_nowait(ctrl, PCI_EXP_SLTCTL_PWR_IND_BLINK, > - PCI_EXP_SLTCTL_PIC); > - ctrl_dbg(ctrl, "%s: SLOTCTRL %x write cmd %x\n", __func__, > - pci_pcie_cap(ctrl->pcie->port) + PCI_EXP_SLTCTL, > - PCI_EXP_SLTCTL_PWR_IND_BLINK); > -} > - > int pciehp_power_on_slot(struct controller *ctrl) > { > struct pci_dev *pdev = ctrl_dev(ctrl);
On Sun, Aug 11, 2019 at 10:59:44PM +0300, Denis Efremov wrote: > This patch replaces pciehp_green_led_{on,off,blink}() with > pciehp_set_indicators(). > > Reviewed-by: Lukas Wunner <lukas@wunner.de> > Signed-off-by: Denis Efremov <efremov@linux.com> > --- > drivers/pci/hotplug/pciehp.h | 12 ++++++++--- > drivers/pci/hotplug/pciehp_hpc.c | 36 -------------------------------- > 2 files changed, 9 insertions(+), 39 deletions(-) > > diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h > index 9a2a2d0db9d2..6cdcb1ca561f 100644 > --- a/drivers/pci/hotplug/pciehp.h > +++ b/drivers/pci/hotplug/pciehp.h > @@ -183,9 +183,6 @@ void pciehp_set_indicators(struct controller *ctrl, > enum pciehp_indicator attn); > void pciehp_get_latch_status(struct controller *ctrl, u8 *status); > int pciehp_query_power_fault(struct controller *ctrl); > -void pciehp_green_led_on(struct controller *ctrl); > -void pciehp_green_led_off(struct controller *ctrl); > -void pciehp_green_led_blink(struct controller *ctrl); > bool pciehp_card_present(struct controller *ctrl); > bool pciehp_card_present_or_link_active(struct controller *ctrl); > int pciehp_check_link_status(struct controller *ctrl); > @@ -202,6 +199,15 @@ int pciehp_get_raw_indicator_status(struct hotplug_slot *h_slot, u8 *status); > #define pciehp_set_attention_status(ctrl, status) \ > pciehp_set_indicators(ctrl, PWR_NONE, (status == 0 ? ATTN_OFF : status)) > > +#define pciehp_green_led_on(ctrl) \ > + pciehp_set_indicators(ctrl, PWR_ON, ATTN_NONE) > + > +#define pciehp_green_led_off(ctrl) \ > + pciehp_set_indicators(ctrl, PWR_OFF, ATTN_NONE) > + > +#define pciehp_green_led_blink(ctrl) \ > + pciehp_set_indicators(ctrl, PWR_BLINK, ATTN_NONE) You must have a reason, but why didn't you completely remove pciehp_green_led_on(), etc, and change the callers to use pciehp_set_indicators() instead? > static inline const char *slot_name(struct controller *ctrl) > { > return hotplug_slot_name(&ctrl->hotplug_slot); > diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c > index fb4bea16063a..8362d24405fd 100644 > --- a/drivers/pci/hotplug/pciehp_hpc.c > +++ b/drivers/pci/hotplug/pciehp_hpc.c > @@ -456,42 +456,6 @@ void pciehp_set_indicators(struct controller *ctrl, > cmd); > } > > -void pciehp_green_led_on(struct controller *ctrl) > -{ > - if (!PWR_LED(ctrl)) > - return; > - > - pcie_write_cmd_nowait(ctrl, PCI_EXP_SLTCTL_PWR_IND_ON, > - PCI_EXP_SLTCTL_PIC); > - ctrl_dbg(ctrl, "%s: SLOTCTRL %x write cmd %x\n", __func__, > - pci_pcie_cap(ctrl->pcie->port) + PCI_EXP_SLTCTL, > - PCI_EXP_SLTCTL_PWR_IND_ON); > -} > - > -void pciehp_green_led_off(struct controller *ctrl) > -{ > - if (!PWR_LED(ctrl)) > - return; > - > - pcie_write_cmd_nowait(ctrl, PCI_EXP_SLTCTL_PWR_IND_OFF, > - PCI_EXP_SLTCTL_PIC); > - ctrl_dbg(ctrl, "%s: SLOTCTRL %x write cmd %x\n", __func__, > - pci_pcie_cap(ctrl->pcie->port) + PCI_EXP_SLTCTL, > - PCI_EXP_SLTCTL_PWR_IND_OFF); > -} > - > -void pciehp_green_led_blink(struct controller *ctrl) > -{ > - if (!PWR_LED(ctrl)) > - return; > - > - pcie_write_cmd_nowait(ctrl, PCI_EXP_SLTCTL_PWR_IND_BLINK, > - PCI_EXP_SLTCTL_PIC); > - ctrl_dbg(ctrl, "%s: SLOTCTRL %x write cmd %x\n", __func__, > - pci_pcie_cap(ctrl->pcie->port) + PCI_EXP_SLTCTL, > - PCI_EXP_SLTCTL_PWR_IND_BLINK); > -} > - > int pciehp_power_on_slot(struct controller *ctrl) > { > struct pci_dev *pdev = ctrl_dev(ctrl); > -- > 2.21.0 >
> You must have a reason, but why didn't you completely remove > pciehp_green_led_on(), etc, and change the callers to use > pciehp_set_indicators() instead? Well, I don't have the exact reason here. I thought that it would be nice to preserve an existing interface and to hide some implementation details (e.g., status of the second indicator). I could completely remove pciehp_green_led_{on,off,blink}() and pciehp_set_attention_status() in v3 if you prefer. Thanks, Denis
On Tue, Aug 13, 2019 at 12:14:08AM +0300, Denis Efremov wrote: > > You must have a reason, but why didn't you completely remove > > pciehp_green_led_on(), etc, and change the callers to use > > pciehp_set_indicators() instead? > > Well, I don't have the exact reason here. I thought that it would be nice to preserve > an existing interface and to hide some implementation details (e.g., status of the > second indicator). I could completely remove pciehp_green_led_{on,off,blink}() and > pciehp_set_attention_status() in v3 if you prefer. I might be missing something, but I do think I would prefer to completely remove pciehp_green_led_{on,off,blink}() and pciehp_set_attention_status(). Then we'd have exactly one interface to change indicator state.
diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h index 9a2a2d0db9d2..6cdcb1ca561f 100644 --- a/drivers/pci/hotplug/pciehp.h +++ b/drivers/pci/hotplug/pciehp.h @@ -183,9 +183,6 @@ void pciehp_set_indicators(struct controller *ctrl, enum pciehp_indicator attn); void pciehp_get_latch_status(struct controller *ctrl, u8 *status); int pciehp_query_power_fault(struct controller *ctrl); -void pciehp_green_led_on(struct controller *ctrl); -void pciehp_green_led_off(struct controller *ctrl); -void pciehp_green_led_blink(struct controller *ctrl); bool pciehp_card_present(struct controller *ctrl); bool pciehp_card_present_or_link_active(struct controller *ctrl); int pciehp_check_link_status(struct controller *ctrl); @@ -202,6 +199,15 @@ int pciehp_get_raw_indicator_status(struct hotplug_slot *h_slot, u8 *status); #define pciehp_set_attention_status(ctrl, status) \ pciehp_set_indicators(ctrl, PWR_NONE, (status == 0 ? ATTN_OFF : status)) +#define pciehp_green_led_on(ctrl) \ + pciehp_set_indicators(ctrl, PWR_ON, ATTN_NONE) + +#define pciehp_green_led_off(ctrl) \ + pciehp_set_indicators(ctrl, PWR_OFF, ATTN_NONE) + +#define pciehp_green_led_blink(ctrl) \ + pciehp_set_indicators(ctrl, PWR_BLINK, ATTN_NONE) + static inline const char *slot_name(struct controller *ctrl) { return hotplug_slot_name(&ctrl->hotplug_slot); diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c index fb4bea16063a..8362d24405fd 100644 --- a/drivers/pci/hotplug/pciehp_hpc.c +++ b/drivers/pci/hotplug/pciehp_hpc.c @@ -456,42 +456,6 @@ void pciehp_set_indicators(struct controller *ctrl, cmd); } -void pciehp_green_led_on(struct controller *ctrl) -{ - if (!PWR_LED(ctrl)) - return; - - pcie_write_cmd_nowait(ctrl, PCI_EXP_SLTCTL_PWR_IND_ON, - PCI_EXP_SLTCTL_PIC); - ctrl_dbg(ctrl, "%s: SLOTCTRL %x write cmd %x\n", __func__, - pci_pcie_cap(ctrl->pcie->port) + PCI_EXP_SLTCTL, - PCI_EXP_SLTCTL_PWR_IND_ON); -} - -void pciehp_green_led_off(struct controller *ctrl) -{ - if (!PWR_LED(ctrl)) - return; - - pcie_write_cmd_nowait(ctrl, PCI_EXP_SLTCTL_PWR_IND_OFF, - PCI_EXP_SLTCTL_PIC); - ctrl_dbg(ctrl, "%s: SLOTCTRL %x write cmd %x\n", __func__, - pci_pcie_cap(ctrl->pcie->port) + PCI_EXP_SLTCTL, - PCI_EXP_SLTCTL_PWR_IND_OFF); -} - -void pciehp_green_led_blink(struct controller *ctrl) -{ - if (!PWR_LED(ctrl)) - return; - - pcie_write_cmd_nowait(ctrl, PCI_EXP_SLTCTL_PWR_IND_BLINK, - PCI_EXP_SLTCTL_PIC); - ctrl_dbg(ctrl, "%s: SLOTCTRL %x write cmd %x\n", __func__, - pci_pcie_cap(ctrl->pcie->port) + PCI_EXP_SLTCTL, - PCI_EXP_SLTCTL_PWR_IND_BLINK); -} - int pciehp_power_on_slot(struct controller *ctrl) { struct pci_dev *pdev = ctrl_dev(ctrl);