Messages in this thread | | | From | Arnd Bergmann <> | Subject | Re: [PATCH v5 06/11] scsi: ufs: add quirk to enable host controller without hce | Date | Tue, 17 Nov 2015 09:43:26 +0100 |
| |
On Monday 09 November 2015 10:56:22 Alim Akhtar wrote: > +static int ufshcd_hba_enable(struct ufs_hba *hba) > +{ > + int ret; > + > + if (hba->quirks & UFSHCI_QUIRK_BROKEN_HCE) { > + ufshcd_set_link_off(hba); > + ufshcd_vops_hce_enable_notify(hba, PRE_CHANGE); > + > + /* enable UIC related interrupts */ > + ufshcd_enable_intr(hba, UFSHCD_UIC_MASK); > + ret = ufshcd_dme_reset(hba); > + if (!ret) { > + ret = ufshcd_dme_enable(hba); > + if (!ret) > + ufshcd_vops_hce_enable_notify(hba, POST_CHANGE); > + if (ret) > + dev_err(hba->dev, > + "Host controller enable failed with non-hce\n"); > + } > + } else { > + ret = ufshcd_hba_execute_hce(hba); > + } > + > + return ret;
quirks are often not the best way to deal with host controller specific differences. How about using a function pointer for ufshcd_hba_enable() that can be one or the oither implementation?
Arnd
| |