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

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
...@@ -34,38 +34,17 @@ ...@@ -34,38 +34,17 @@
* periodic 11 min sync from kernel/time/ntp.c vs. this driver.) * 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); 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 */ /* 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); 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 /* On Ataris, the checksum is over all bytes except the checksum bytes
* themselves; these are at the very end. * themselves; these are at the very end.
*/ */
...@@ -73,7 +52,7 @@ void nvram_write_byte(unsigned char c, int i) ...@@ -73,7 +52,7 @@ void nvram_write_byte(unsigned char c, int i)
#define ATARI_CKS_RANGE_END 47 #define ATARI_CKS_RANGE_END 47
#define ATARI_CKS_LOC 48 #define ATARI_CKS_LOC 48
int __nvram_check_checksum(void) static int __nvram_check_checksum(void)
{ {
int i; int i;
unsigned char sum = 0; unsigned char sum = 0;
...@@ -84,18 +63,6 @@ int __nvram_check_checksum(void) ...@@ -84,18 +63,6 @@ int __nvram_check_checksum(void)
(__nvram_read_byte(ATARI_CKS_LOC + 1) == (sum & 0xff)); (__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) static void __nvram_set_checksum(void)
{ {
int i; int i;
......
...@@ -74,13 +74,12 @@ static int nvram_open_mode; /* special open modes */ ...@@ -74,13 +74,12 @@ static int nvram_open_mode; /* special open modes */
* periodic 11 min sync from kernel/time/ntp.c vs. this driver.) * 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); 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 long flags;
unsigned char c; unsigned char c;
...@@ -90,16 +89,14 @@ unsigned char nvram_read_byte(int i) ...@@ -90,16 +89,14 @@ unsigned char nvram_read_byte(int i)
spin_unlock_irqrestore(&rtc_lock, flags); spin_unlock_irqrestore(&rtc_lock, flags);
return c; return c;
} }
EXPORT_SYMBOL(nvram_read_byte);
/* This races nicely with trying to read with checksum checking (nvram_read) */ /* 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); 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; unsigned long flags;
...@@ -107,14 +104,13 @@ void nvram_write_byte(unsigned char c, int i) ...@@ -107,14 +104,13 @@ void nvram_write_byte(unsigned char c, int i)
__nvram_write_byte(c, i); __nvram_write_byte(c, i);
spin_unlock_irqrestore(&rtc_lock, flags); spin_unlock_irqrestore(&rtc_lock, flags);
} }
EXPORT_SYMBOL(nvram_write_byte);
/* On PCs, the checksum is built only over bytes 2..31 */ /* On PCs, the checksum is built only over bytes 2..31 */
#define PC_CKS_RANGE_START 2 #define PC_CKS_RANGE_START 2
#define PC_CKS_RANGE_END 31 #define PC_CKS_RANGE_END 31
#define PC_CKS_LOC 32 #define PC_CKS_LOC 32
int __nvram_check_checksum(void) static int __nvram_check_checksum(void)
{ {
int i; int i;
unsigned short sum = 0; unsigned short sum = 0;
...@@ -126,19 +122,6 @@ int __nvram_check_checksum(void) ...@@ -126,19 +122,6 @@ int __nvram_check_checksum(void)
__nvram_read_byte(PC_CKS_LOC+1); __nvram_read_byte(PC_CKS_LOC+1);
return (sum & 0xffff) == expect; 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) static void __nvram_set_checksum(void)
{ {
......
...@@ -759,13 +759,15 @@ static int __init atari_scsi_probe(struct platform_device *pdev) ...@@ -759,13 +759,15 @@ static int __init atari_scsi_probe(struct platform_device *pdev)
atari_scsi_template.this_id = setup_hostid & 7; atari_scsi_template.this_id = setup_hostid & 7;
} else if (IS_REACHABLE(CONFIG_NVRAM)) { } else if (IS_REACHABLE(CONFIG_NVRAM)) {
/* Test if a host id is set in the NVRam */ /* Test if a host id is set in the NVRam */
if (ATARIHW_PRESENT(TT_CLK) && nvram_check_checksum()) { if (ATARIHW_PRESENT(TT_CLK)) {
unsigned char b = nvram_read_byte(16); unsigned char b;
loff_t offset = 16;
ssize_t count = nvram_read(&b, 1, &offset);
/* Arbitration enabled? (for TOS) /* Arbitration enabled? (for TOS)
* If yes, use configured host ID * If yes, use configured host ID
*/ */
if (b & 0x80) if ((count == 1) && (b & 0x80))
atari_scsi_template.this_id = b & 7; atari_scsi_template.this_id = b & 7;
} }
} }
......
...@@ -2,13 +2,31 @@ ...@@ -2,13 +2,31 @@
#ifndef _LINUX_NVRAM_H #ifndef _LINUX_NVRAM_H
#define _LINUX_NVRAM_H #define _LINUX_NVRAM_H
#include <linux/errno.h>
#include <uapi/linux/nvram.h> #include <uapi/linux/nvram.h>
/* __foo is foo without grabbing the rtc_lock - get it yourself */ static inline ssize_t nvram_get_size(void)
extern unsigned char __nvram_read_byte(int i); {
extern unsigned char nvram_read_byte(int i); return -ENODEV;
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); static inline unsigned char nvram_read_byte(int addr)
extern int nvram_check_checksum(void); {
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 */ #endif /* _LINUX_NVRAM_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment