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

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

ide: convert ide-timing.h to ide-timings.c library (take 2)



* Don't include ide-timing.h in cs5535 and sis5513 host drivers
  (they don't need it currently).

* Convert ide-timing.h to ide-timings.c library and add CONFIG_IDE_TIMINGS
  config option to be selected by host drivers using the library.

While at it:

- fix ide_timing_find_mode() placement

v2:
* Add missing EXPORT_SYMBOLs. (Stephen Rothwell <sfr@canb.auug.org.au>)

There should be no functional changes caused by this patch.

Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 2c139e7a
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -98,6 +98,9 @@ if BLK_DEV_IDE

comment "Please see Documentation/ide/ide.txt for help/info on IDE drives"

config IDE_TIMINGS
	bool

config IDE_ATAPI
	bool

@@ -469,6 +472,7 @@ config BLK_DEV_ALI15X3
config BLK_DEV_AMD74XX
	tristate "AMD and nVidia IDE support"
	depends on !ARM
	select IDE_TIMINGS
	select BLK_DEV_IDEDMA_PCI
	help
	  This driver adds explicit support for AMD-7xx and AMD-8111 chips
@@ -725,6 +729,7 @@ config BLK_DEV_TRM290

config BLK_DEV_VIA82CXXX
	tristate "VIA82CXXX chipset support"
	select IDE_TIMINGS
	select BLK_DEV_IDEDMA_PCI
	help
	  This driver adds explicit support for VIA BusMastering IDE chips.
@@ -751,6 +756,7 @@ endif
config BLK_DEV_IDE_PMAC
	tristate "PowerMac on-board IDE support"
	depends on PPC_PMAC && IDE=y && BLK_DEV_IDE=y
	select IDE_TIMINGS
	help
	  This driver provides support for the on-board IDE controller on
	  most of the recent Apple Power Macintoshes and PowerBooks.
@@ -912,6 +918,7 @@ config BLK_DEV_Q40IDE
config BLK_DEV_PALMCHIP_BK3710
	tristate "Palmchip bk3710 IDE controller support"
	depends on ARCH_DAVINCI
	select IDE_TIMINGS
	select BLK_DEV_IDEDMA_SFF
	help
	  Say Y here if you want to support the onchip IDE controller on the
+1 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ EXTRA_CFLAGS += -Idrivers/ide
ide-core-y += ide.o ide-io.o ide-iops.o ide-lib.o ide-probe.o ide-taskfile.o

# core IDE code
ide-core-$(CONFIG_IDE_TIMINGS)		+= ide-timings.o
ide-core-$(CONFIG_IDE_ATAPI)		+= ide-atapi.o
ide-core-$(CONFIG_BLK_DEV_IDEPCI)	+= setup-pci.o
ide-core-$(CONFIG_BLK_DEV_IDEDMA)	+= ide-dma.o
+0 −2
Original line number Diff line number Diff line
@@ -74,8 +74,6 @@ struct palm_bk3710_udmatiming {
#define BK3710_IORDYTMP		0x78
#define BK3710_IORDYTMS		0x7C

#include "../ide-timing.h"

static unsigned ideclk_period; /* in nanoseconds */

static const struct palm_bk3710_udmatiming palm_bk3710_udmatimings[6] = {
+19 −19
Original line number Diff line number Diff line
#ifndef _IDE_TIMING_H
#define _IDE_TIMING_H

/*
 *  Copyright (c) 1999-2001 Vojtech Pavlik
 *
@@ -25,6 +22,8 @@

#include <linux/kernel.h>
#include <linux/hdreg.h>
#include <linux/ide.h>
#include <linux/module.h>

/*
 * PIO 0-5, MWDMA 0-2 and UDMA 0-6 timings (in nanoseconds).
@@ -65,6 +64,17 @@ static struct ide_timing ide_timing[] = {
	{ 0xff }
};

struct ide_timing *ide_timing_find_mode(u8 speed)
{
	struct ide_timing *t;

	for (t = ide_timing; t->mode != speed; t++)
		if (t->mode == 0xff)
			return NULL;
	return t;
}
EXPORT_SYMBOL_GPL(ide_timing_find_mode);

#define ENOUGH(v, unit)		(((v) - 1) / (unit) + 1)
#define EZ(v, unit)		((v) ? ENOUGH(v, unit) : 0)

@@ -81,7 +91,7 @@ static void ide_timing_quantize(struct ide_timing *t, struct ide_timing *q,
	q->udma    = EZ(t->udma    * 1000, UT);
}

static void ide_timing_merge(struct ide_timing *a, struct ide_timing *b,
void ide_timing_merge(struct ide_timing *a, struct ide_timing *b,
		      struct ide_timing *m, unsigned int what)
{
	if (what & IDE_TIMING_SETUP)
@@ -101,18 +111,9 @@ static void ide_timing_merge(struct ide_timing *a, struct ide_timing *b,
	if (what & IDE_TIMING_UDMA)
		m->udma    = max(a->udma,    b->udma);
}
EXPORT_SYMBOL_GPL(ide_timing_merge);

static struct ide_timing *ide_timing_find_mode(u8 speed)
{
	struct ide_timing *t;

	for (t = ide_timing; t->mode != speed; t++)
		if (t->mode == 0xff)
			return NULL;
	return t;
}

static int ide_timing_compute(ide_drive_t *drive, u8 speed,
int ide_timing_compute(ide_drive_t *drive, u8 speed,
		       struct ide_timing *t, int T, int UT)
{
	struct hd_driveid *id = drive->id;
@@ -179,5 +180,4 @@ static int ide_timing_compute(ide_drive_t *drive, u8 speed,

	return 0;
}

#endif
EXPORT_SYMBOL_GPL(ide_timing_compute);
+0 −2
Original line number Diff line number Diff line
@@ -21,8 +21,6 @@
#include <linux/init.h>
#include <linux/ide.h>

#include "ide-timing.h"

enum {
	AMD_IDE_CONFIG		= 0x41,
	AMD_CABLE_DETECT	= 0x42,
Loading