Merge branch 'fixes' into next
This commit is contained in:
commit
bd6b7dfdda
|
@ -282,6 +282,9 @@ static void __cqhci_enable(struct cqhci_host *cq_host)
|
|||
|
||||
cqhci_writel(cq_host, cqcfg, CQHCI_CFG);
|
||||
|
||||
if (cqhci_readl(cq_host, CQHCI_CTL) & CQHCI_HALT)
|
||||
cqhci_writel(cq_host, 0, CQHCI_CTL);
|
||||
|
||||
mmc->cqe_on = true;
|
||||
|
||||
if (cq_host->ops->enable)
|
||||
|
|
|
@ -464,6 +464,18 @@ static s8 dw_mci_exynos_get_best_clksmpl(u8 candiates)
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* If there is no cadiates value, then it needs to return -EIO.
|
||||
* If there are candiates values and don't find bset clk sample value,
|
||||
* then use a first candiates clock sample value.
|
||||
*/
|
||||
for (i = 0; i < iter; i++) {
|
||||
__c = ror8(candiates, i);
|
||||
if ((__c & 0x1) == 0x1) {
|
||||
loc = i;
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
out:
|
||||
return loc;
|
||||
}
|
||||
|
@ -494,6 +506,8 @@ static int dw_mci_exynos_execute_tuning(struct dw_mci_slot *slot, u32 opcode)
|
|||
priv->tuned_sample = found;
|
||||
} else {
|
||||
ret = -EIO;
|
||||
dev_warn(&mmc->class_dev,
|
||||
"There is no candiates value about clksmpl!\n");
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
|
|
@ -576,7 +576,7 @@ static void check_vub300_port_status(struct vub300_mmc_host *vub300)
|
|||
GET_SYSTEM_PORT_STATUS,
|
||||
USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
|
||||
0x0000, 0x0000, &vub300->system_port_status,
|
||||
sizeof(vub300->system_port_status), HZ);
|
||||
sizeof(vub300->system_port_status), 1000);
|
||||
if (sizeof(vub300->system_port_status) == retval)
|
||||
new_system_port_status(vub300);
|
||||
}
|
||||
|
@ -1241,7 +1241,7 @@ static void __download_offload_pseudocode(struct vub300_mmc_host *vub300,
|
|||
SET_INTERRUPT_PSEUDOCODE,
|
||||
USB_DIR_OUT | USB_TYPE_VENDOR |
|
||||
USB_RECIP_DEVICE, 0x0000, 0x0000,
|
||||
xfer_buffer, xfer_length, HZ);
|
||||
xfer_buffer, xfer_length, 1000);
|
||||
kfree(xfer_buffer);
|
||||
if (retval < 0)
|
||||
goto copy_error_message;
|
||||
|
@ -1284,7 +1284,7 @@ static void __download_offload_pseudocode(struct vub300_mmc_host *vub300,
|
|||
SET_TRANSFER_PSEUDOCODE,
|
||||
USB_DIR_OUT | USB_TYPE_VENDOR |
|
||||
USB_RECIP_DEVICE, 0x0000, 0x0000,
|
||||
xfer_buffer, xfer_length, HZ);
|
||||
xfer_buffer, xfer_length, 1000);
|
||||
kfree(xfer_buffer);
|
||||
if (retval < 0)
|
||||
goto copy_error_message;
|
||||
|
@ -1991,7 +1991,7 @@ static void __set_clock_speed(struct vub300_mmc_host *vub300, u8 buf[8],
|
|||
usb_control_msg(vub300->udev, usb_sndctrlpipe(vub300->udev, 0),
|
||||
SET_CLOCK_SPEED,
|
||||
USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
|
||||
0x00, 0x00, buf, buf_array_size, HZ);
|
||||
0x00, 0x00, buf, buf_array_size, 1000);
|
||||
if (retval != 8) {
|
||||
dev_err(&vub300->udev->dev, "SET_CLOCK_SPEED"
|
||||
" %dkHz failed with retval=%d\n", kHzClock, retval);
|
||||
|
@ -2013,14 +2013,14 @@ static void vub300_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
|
|||
usb_control_msg(vub300->udev, usb_sndctrlpipe(vub300->udev, 0),
|
||||
SET_SD_POWER,
|
||||
USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
|
||||
0x0000, 0x0000, NULL, 0, HZ);
|
||||
0x0000, 0x0000, NULL, 0, 1000);
|
||||
/* must wait for the VUB300 u-proc to boot up */
|
||||
msleep(600);
|
||||
} else if ((ios->power_mode == MMC_POWER_UP) && !vub300->card_powered) {
|
||||
usb_control_msg(vub300->udev, usb_sndctrlpipe(vub300->udev, 0),
|
||||
SET_SD_POWER,
|
||||
USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
|
||||
0x0001, 0x0000, NULL, 0, HZ);
|
||||
0x0001, 0x0000, NULL, 0, 1000);
|
||||
msleep(600);
|
||||
vub300->card_powered = 1;
|
||||
} else if (ios->power_mode == MMC_POWER_ON) {
|
||||
|
@ -2275,14 +2275,14 @@ static int vub300_probe(struct usb_interface *interface,
|
|||
GET_HC_INF0,
|
||||
USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
|
||||
0x0000, 0x0000, &vub300->hc_info,
|
||||
sizeof(vub300->hc_info), HZ);
|
||||
sizeof(vub300->hc_info), 1000);
|
||||
if (retval < 0)
|
||||
goto error5;
|
||||
retval =
|
||||
usb_control_msg(vub300->udev, usb_sndctrlpipe(vub300->udev, 0),
|
||||
SET_ROM_WAIT_STATES,
|
||||
USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
|
||||
firmware_rom_wait_states, 0x0000, NULL, 0, HZ);
|
||||
firmware_rom_wait_states, 0x0000, NULL, 0, 1000);
|
||||
if (retval < 0)
|
||||
goto error5;
|
||||
dev_info(&vub300->udev->dev,
|
||||
|
@ -2297,7 +2297,7 @@ static int vub300_probe(struct usb_interface *interface,
|
|||
GET_SYSTEM_PORT_STATUS,
|
||||
USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
|
||||
0x0000, 0x0000, &vub300->system_port_status,
|
||||
sizeof(vub300->system_port_status), HZ);
|
||||
sizeof(vub300->system_port_status), 1000);
|
||||
if (retval < 0) {
|
||||
goto error4;
|
||||
} else if (sizeof(vub300->system_port_status) == retval) {
|
||||
|
|
Loading…
Reference in New Issue