Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cafa027b authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz
Browse files

cs5520: disable VDMA



Disable Virtual DMA support for now (it causes system hangs).

Thanks to TAKADA Yoshihito for the help with debugging the problem.

Reported-by: default avatarTAKADA Yoshihito <takada@mbf.nifty.com>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 64afc31f
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -119,6 +119,7 @@ static const struct ide_dma_ops cs5520_dma_ops = {
	.dma_timeout		= ide_dma_timeout,
	.dma_timeout		= ide_dma_timeout,
};
};


/* FIXME: VDMA is disabled because it caused system hangs */
#define DECLARE_CS_DEV(name_str)				\
#define DECLARE_CS_DEV(name_str)				\
	{							\
	{							\
		.name		= name_str,			\
		.name		= name_str,			\
@@ -126,7 +127,6 @@ static const struct ide_dma_ops cs5520_dma_ops = {
		.dma_ops	= &cs5520_dma_ops,		\
		.dma_ops	= &cs5520_dma_ops,		\
		.host_flags	= IDE_HFLAG_ISA_PORTS |		\
		.host_flags	= IDE_HFLAG_ISA_PORTS |		\
				  IDE_HFLAG_CS5520 |		\
				  IDE_HFLAG_CS5520 |		\
				  IDE_HFLAG_VDMA |		\
				  IDE_HFLAG_NO_ATAPI_DMA |	\
				  IDE_HFLAG_NO_ATAPI_DMA |	\
				  IDE_HFLAG_ABUSE_SET_DMA_MODE, \
				  IDE_HFLAG_ABUSE_SET_DMA_MODE, \
		.pio_mask	= ATA_PIO4,			\
		.pio_mask	= ATA_PIO4,			\
+4 −4
Original line number Original line Diff line number Diff line
@@ -1057,8 +1057,8 @@ enum {
	IDE_HFLAG_NO_SET_MODE		= (1 << 9),
	IDE_HFLAG_NO_SET_MODE		= (1 << 9),
	/* trust BIOS for programming chipset/device for DMA */
	/* trust BIOS for programming chipset/device for DMA */
	IDE_HFLAG_TRUST_BIOS_FOR_DMA	= (1 << 10),
	IDE_HFLAG_TRUST_BIOS_FOR_DMA	= (1 << 10),
	/* host uses VDMA (tied with IDE_HFLAG_CS5520 for now) */
	/* host is CS5510/CS5520 */
	IDE_HFLAG_VDMA			= (1 << 11),
	IDE_HFLAG_CS5520		= (1 << 11),
	/* ATAPI DMA is unsupported */
	/* ATAPI DMA is unsupported */
	IDE_HFLAG_NO_ATAPI_DMA		= (1 << 12),
	IDE_HFLAG_NO_ATAPI_DMA		= (1 << 12),
	/* set if host is a "non-bootable" controller */
	/* set if host is a "non-bootable" controller */
@@ -1069,8 +1069,6 @@ enum {
	IDE_HFLAG_NO_AUTODMA		= (1 << 15),
	IDE_HFLAG_NO_AUTODMA		= (1 << 15),
	/* host uses MMIO */
	/* host uses MMIO */
	IDE_HFLAG_MMIO			= (1 << 16),
	IDE_HFLAG_MMIO			= (1 << 16),
	/* host is CS5510/CS5520 */
	IDE_HFLAG_CS5520		= IDE_HFLAG_VDMA,
	/* no LBA48 */
	/* no LBA48 */
	IDE_HFLAG_NO_LBA48		= (1 << 17),
	IDE_HFLAG_NO_LBA48		= (1 << 17),
	/* no LBA48 DMA */
	/* no LBA48 DMA */
@@ -1100,6 +1098,8 @@ enum {
	IDE_HFLAG_NO_IO_32BIT		= (1 << 30),
	IDE_HFLAG_NO_IO_32BIT		= (1 << 30),
	/* never unmask IRQs */
	/* never unmask IRQs */
	IDE_HFLAG_NO_UNMASK_IRQS	= (1 << 31),
	IDE_HFLAG_NO_UNMASK_IRQS	= (1 << 31),
	/* host uses VDMA (disabled for now) */
	IDE_HFLAG_VDMA			= 0,
};
};


#ifdef CONFIG_BLK_DEV_OFFBOARD
#ifdef CONFIG_BLK_DEV_OFFBOARD