|
@@ -82,6 +82,7 @@ static const struct palm_bk3710_udmatiming palm_bk3710_udmatimings[6] = {
|
|
|
{100, 120}, /* UDMA Mode 2 */
|
|
|
{100, 90}, /* UDMA Mode 3 */
|
|
|
{100, 60}, /* UDMA Mode 4 */
|
|
|
+ {85, 40}, /* UDMA Mode 5 */
|
|
|
};
|
|
|
|
|
|
static void palm_bk3710_setudmamode(void __iomem *base, unsigned int dev,
|
|
@@ -334,12 +335,11 @@ static const struct ide_port_ops palm_bk3710_ports_ops = {
|
|
|
.cable_detect = palm_bk3710_cable_detect,
|
|
|
};
|
|
|
|
|
|
-static const struct ide_port_info __devinitdata palm_bk3710_port_info = {
|
|
|
+static struct ide_port_info __devinitdata palm_bk3710_port_info = {
|
|
|
.init_dma = palm_bk3710_init_dma,
|
|
|
.port_ops = &palm_bk3710_ports_ops,
|
|
|
.host_flags = IDE_HFLAG_MMIO,
|
|
|
.pio_mask = ATA_PIO4,
|
|
|
- .udma_mask = ATA_UDMA4, /* (input clk 99MHz) */
|
|
|
.mwdma_mask = ATA_MWDMA2,
|
|
|
};
|
|
|
|
|
@@ -352,7 +352,7 @@ static int __devinit palm_bk3710_probe(struct platform_device *pdev)
|
|
|
int i, rc;
|
|
|
hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL };
|
|
|
|
|
|
- clk = clk_get(NULL, "IDECLK");
|
|
|
+ clk = clk_get(&pdev->dev, "IDECLK");
|
|
|
if (IS_ERR(clk))
|
|
|
return -ENODEV;
|
|
|
|
|
@@ -392,6 +392,9 @@ static int __devinit palm_bk3710_probe(struct platform_device *pdev)
|
|
|
hw.irq = irq->start;
|
|
|
hw.chipset = ide_palm3710;
|
|
|
|
|
|
+ palm_bk3710_port_info.udma_mask = rate < 100000000 ? ATA_UDMA4 :
|
|
|
+ ATA_UDMA5;
|
|
|
+
|
|
|
rc = ide_host_add(&palm_bk3710_port_info, hws, NULL);
|
|
|
if (rc)
|
|
|
goto out;
|