mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
Revert "scsi: ufs: core: Make DMA mask configuration more flexible"
This reverts commit 6e8a13f27e which is
commit 78bc671bd1501e2f6c571e063301a4fdc5db53b2 upstream.
It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.
Bug: 161946584
Change-Id: I43b600b7285945d45c986247f606b9b20ba07934
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
@@ -2364,6 +2364,8 @@ static inline int ufshcd_hba_capabilities(struct ufs_hba *hba)
|
||||
int err;
|
||||
|
||||
hba->capabilities = ufshcd_readl(hba, REG_CONTROLLER_CAPABILITIES);
|
||||
if (hba->quirks & UFSHCD_QUIRK_BROKEN_64BIT_ADDRESS)
|
||||
hba->capabilities &= ~MASK_64_ADDRESSING_SUPPORT;
|
||||
|
||||
/* nutrs and nutmrs are 0 based values */
|
||||
hba->nutrs = (hba->capabilities & MASK_TRANSFER_REQUESTS_SLOTS) + 1;
|
||||
@@ -10312,8 +10314,6 @@ EXPORT_SYMBOL_GPL(ufshcd_dealloc_host);
|
||||
*/
|
||||
static int ufshcd_set_dma_mask(struct ufs_hba *hba)
|
||||
{
|
||||
if (hba->vops && hba->vops->set_dma_mask)
|
||||
return hba->vops->set_dma_mask(hba);
|
||||
if (hba->capabilities & MASK_64_ADDRESSING_SUPPORT) {
|
||||
if (!dma_set_mask_and_coherent(hba->dev, DMA_BIT_MASK(64)))
|
||||
return 0;
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
|
||||
#include <linux/clk.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/iopoll.h>
|
||||
#include <linux/kernel.h>
|
||||
@@ -365,20 +364,14 @@ static int ufs_renesas_init(struct ufs_hba *hba)
|
||||
return -ENOMEM;
|
||||
ufshcd_set_variant(hba, priv);
|
||||
|
||||
hba->quirks |= UFSHCD_QUIRK_HIBERN_FASTAUTO;
|
||||
hba->quirks |= UFSHCD_QUIRK_BROKEN_64BIT_ADDRESS | UFSHCD_QUIRK_HIBERN_FASTAUTO;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ufs_renesas_set_dma_mask(struct ufs_hba *hba)
|
||||
{
|
||||
return dma_set_mask_and_coherent(hba->dev, DMA_BIT_MASK(32));
|
||||
}
|
||||
|
||||
static const struct ufs_hba_variant_ops ufs_renesas_vops = {
|
||||
.name = "renesas",
|
||||
.init = ufs_renesas_init,
|
||||
.set_dma_mask = ufs_renesas_set_dma_mask,
|
||||
.setup_clocks = ufs_renesas_setup_clocks,
|
||||
.hce_enable_notify = ufs_renesas_hce_enable_notify,
|
||||
.dbg_register_dump = ufs_renesas_dbg_register_dump,
|
||||
|
||||
@@ -278,8 +278,6 @@ struct ufs_pwr_mode_info {
|
||||
* @name: variant name
|
||||
* @init: called when the driver is initialized
|
||||
* @exit: called to cleanup everything done in init
|
||||
* @set_dma_mask: For setting another DMA mask than indicated by the 64AS
|
||||
* capability bit.
|
||||
* @get_ufs_hci_version: called to get UFS HCI version
|
||||
* @clk_scale_notify: notifies that clks are scaled up/down
|
||||
* @setup_clocks: called before touching any of the controller registers
|
||||
@@ -319,7 +317,6 @@ struct ufs_hba_variant_ops {
|
||||
int (*init)(struct ufs_hba *);
|
||||
void (*exit)(struct ufs_hba *);
|
||||
u32 (*get_ufs_hci_version)(struct ufs_hba *);
|
||||
int (*set_dma_mask)(struct ufs_hba *);
|
||||
int (*clk_scale_notify)(struct ufs_hba *, bool,
|
||||
enum ufs_notify_change_status);
|
||||
int (*setup_clocks)(struct ufs_hba *, bool,
|
||||
@@ -615,6 +612,12 @@ enum ufshcd_quirks {
|
||||
*/
|
||||
UFSHCD_QUIRK_SKIP_PH_CONFIGURATION = 1 << 16,
|
||||
|
||||
/*
|
||||
* This quirk needs to be enabled if the host controller has
|
||||
* 64-bit addressing supported capability but it doesn't work.
|
||||
*/
|
||||
UFSHCD_QUIRK_BROKEN_64BIT_ADDRESS = 1 << 17,
|
||||
|
||||
/*
|
||||
* This quirk needs to be enabled if the host controller has
|
||||
* auto-hibernate capability but it's FASTAUTO only.
|
||||
|
||||
Reference in New Issue
Block a user