Commit 1278cf66 authored by Finn Thain's avatar Finn Thain Committed by Greg Kroah-Hartman
Browse files

nvram: Replace nvram_* function exports with static functions



Replace nvram_* functions with static functions in nvram.h. These will
become wrappers for struct nvram_ops method calls.

This patch effectively disables existing NVRAM functionality so as to
allow the rest of the series to be bisected without build failures.
That functionality is gradually re-implemented in subsequent patches.

Replace the sole validate-checksum-and-read-byte sequence with a call to
nvram_read() which will gain the same semantics in subsequent patches.

Remove unused exports.

Acked-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: default avatarFinn Thain <fthain@telegraphics.com.au>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent cb8d8006
Loading
Loading
Loading
Loading
+3 −36
Original line number Diff line number Diff line
@@ -34,38 +34,17 @@
 * periodic 11 min sync from kernel/time/ntp.c vs. this driver.)
 */

unsigned char __nvram_read_byte(int i)
static unsigned char __nvram_read_byte(int i)
{
	return CMOS_READ(NVRAM_FIRST_BYTE + i);
}

unsigned char nvram_read_byte(int i)
{
	unsigned long flags;
	unsigned char c;

	spin_lock_irqsave(&rtc_lock, flags);
	c = __nvram_read_byte(i);
	spin_unlock_irqrestore(&rtc_lock, flags);
	return c;
}
EXPORT_SYMBOL(nvram_read_byte);

/* This races nicely with trying to read with checksum checking */
void __nvram_write_byte(unsigned char c, int i)
static void __nvram_write_byte(unsigned char c, int i)
{
	CMOS_WRITE(c, NVRAM_FIRST_BYTE + i);
}

void nvram_write_byte(unsigned char c, int i)
{
	unsigned long flags;

	spin_lock_irqsave(&rtc_lock, flags);
	__nvram_write_byte(c, i);
	spin_unlock_irqrestore(&rtc_lock, flags);
}

/* On Ataris, the checksum is over all bytes except the checksum bytes
 * themselves; these are at the very end.
 */
@@ -73,7 +52,7 @@ void nvram_write_byte(unsigned char c, int i)
#define ATARI_CKS_RANGE_END	47
#define ATARI_CKS_LOC		48

int __nvram_check_checksum(void)
static int __nvram_check_checksum(void)
{
	int i;
	unsigned char sum = 0;
@@ -84,18 +63,6 @@ int __nvram_check_checksum(void)
	       (__nvram_read_byte(ATARI_CKS_LOC + 1) == (sum & 0xff));
}

int nvram_check_checksum(void)
{
	unsigned long flags;
	int rv;

	spin_lock_irqsave(&rtc_lock, flags);
	rv = __nvram_check_checksum();
	spin_unlock_irqrestore(&rtc_lock, flags);
	return rv;
}
EXPORT_SYMBOL(nvram_check_checksum);

static void __nvram_set_checksum(void)
{
	int i;
+5 −22
Original line number Diff line number Diff line
@@ -74,13 +74,12 @@ static int nvram_open_mode; /* special open modes */
 * periodic 11 min sync from kernel/time/ntp.c vs. this driver.)
 */

unsigned char __nvram_read_byte(int i)
static unsigned char __nvram_read_byte(int i)
{
	return CMOS_READ(NVRAM_FIRST_BYTE + i);
}
EXPORT_SYMBOL(__nvram_read_byte);

unsigned char nvram_read_byte(int i)
static unsigned char pc_nvram_read_byte(int i)
{
	unsigned long flags;
	unsigned char c;
@@ -90,16 +89,14 @@ unsigned char nvram_read_byte(int i)
	spin_unlock_irqrestore(&rtc_lock, flags);
	return c;
}
EXPORT_SYMBOL(nvram_read_byte);

/* This races nicely with trying to read with checksum checking (nvram_read) */
void __nvram_write_byte(unsigned char c, int i)
static void __nvram_write_byte(unsigned char c, int i)
{
	CMOS_WRITE(c, NVRAM_FIRST_BYTE + i);
}
EXPORT_SYMBOL(__nvram_write_byte);

void nvram_write_byte(unsigned char c, int i)
static void pc_nvram_write_byte(unsigned char c, int i)
{
	unsigned long flags;

@@ -107,14 +104,13 @@ void nvram_write_byte(unsigned char c, int i)
	__nvram_write_byte(c, i);
	spin_unlock_irqrestore(&rtc_lock, flags);
}
EXPORT_SYMBOL(nvram_write_byte);

/* On PCs, the checksum is built only over bytes 2..31 */
#define PC_CKS_RANGE_START	2
#define PC_CKS_RANGE_END	31
#define PC_CKS_LOC		32

int __nvram_check_checksum(void)
static int __nvram_check_checksum(void)
{
	int i;
	unsigned short sum = 0;
@@ -126,19 +122,6 @@ int __nvram_check_checksum(void)
	    __nvram_read_byte(PC_CKS_LOC+1);
	return (sum & 0xffff) == expect;
}
EXPORT_SYMBOL(__nvram_check_checksum);

int nvram_check_checksum(void)
{
	unsigned long flags;
	int rv;

	spin_lock_irqsave(&rtc_lock, flags);
	rv = __nvram_check_checksum();
	spin_unlock_irqrestore(&rtc_lock, flags);
	return rv;
}
EXPORT_SYMBOL(nvram_check_checksum);

static void __nvram_set_checksum(void)
{
+5 −3
Original line number Diff line number Diff line
@@ -759,13 +759,15 @@ static int __init atari_scsi_probe(struct platform_device *pdev)
		atari_scsi_template.this_id = setup_hostid & 7;
	} else if (IS_REACHABLE(CONFIG_NVRAM)) {
		/* Test if a host id is set in the NVRam */
		if (ATARIHW_PRESENT(TT_CLK) && nvram_check_checksum()) {
			unsigned char b = nvram_read_byte(16);
		if (ATARIHW_PRESENT(TT_CLK)) {
			unsigned char b;
			loff_t offset = 16;
			ssize_t count = nvram_read(&b, 1, &offset);

			/* Arbitration enabled? (for TOS)
			 * If yes, use configured host ID
			 */
			if (b & 0x80)
			if ((count == 1) && (b & 0x80))
				atari_scsi_template.this_id = b & 7;
		}
	}
+25 −7
Original line number Diff line number Diff line
@@ -2,13 +2,31 @@
#ifndef _LINUX_NVRAM_H
#define _LINUX_NVRAM_H

#include <linux/errno.h>
#include <uapi/linux/nvram.h>

/* __foo is foo without grabbing the rtc_lock - get it yourself */
extern unsigned char __nvram_read_byte(int i);
extern unsigned char nvram_read_byte(int i);
extern void __nvram_write_byte(unsigned char c, int i);
extern void nvram_write_byte(unsigned char c, int i);
extern int __nvram_check_checksum(void);
extern int nvram_check_checksum(void);
static inline ssize_t nvram_get_size(void)
{
	return -ENODEV;
}

static inline unsigned char nvram_read_byte(int addr)
{
	return 0xFF;
}

static inline void nvram_write_byte(unsigned char val, int addr)
{
}

static inline ssize_t nvram_read(char *buf, size_t count, loff_t *ppos)
{
	return -ENODEV;
}

static inline ssize_t nvram_write(char *buf, size_t count, loff_t *ppos)
{
	return -ENODEV;
}

#endif  /* _LINUX_NVRAM_H */