Skip to content

Commit

Permalink
[MIPS] Lasat: sysctl fixup
Browse files Browse the repository at this point in the history
LASAT's sysctl interface was broken, it failed a check during boot because
a single entry had a sysctl number and the rest were unnumbered. When I
fixed it I noticed that the whole sysctl file needed a spring clean, it was
using mutexes where it wasn't needed (it's only needed to protect during
writes to the EEPROM), so I moved that stuff out and generally cleaned the
whole thing up.

So now, LASAT's sysctl/proc interface is working again.

Signed-off-by: Thomas Horsten <thomas@horsten.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  • Loading branch information
Thomas Horsten authored and Ralf Baechle committed Jun 16, 2008
1 parent c9c5023 commit 1f34f2e
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 153 deletions.
13 changes: 7 additions & 6 deletions arch/mips/lasat/lasat_board.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,19 @@
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/ctype.h>
#include <linux/mutex.h>
#include <asm/bootinfo.h>
#include <asm/addrspace.h>
#include "at93c.h"
/* New model description table */
#include "lasat_models.h"

static DEFINE_MUTEX(lasat_eeprom_mutex);

#define EEPROM_CRC(data, len) (~crc32(~0, data, len))

struct lasat_info lasat_board_info;

void update_bcastaddr(void);

int EEPROMRead(unsigned int pos, unsigned char *data, int len)
{
int i;
Expand Down Expand Up @@ -258,17 +259,15 @@ int lasat_init_board_info(void)
sprintf(lasat_board_info.li_typestr, "%d", 10 * c);
}

#if defined(CONFIG_INET) && defined(CONFIG_SYSCTL)
update_bcastaddr();
#endif

return 0;
}

void lasat_write_eeprom_info(void)
{
unsigned long crc;

mutex_lock(&lasat_eeprom_mutex);

/* Generate the CRC */
crc = EEPROM_CRC((unsigned char *)(&lasat_board_info.li_eeprom_info),
sizeof(struct lasat_eeprom_struct) - 4);
Expand All @@ -277,4 +276,6 @@ void lasat_write_eeprom_info(void)
/* Write the EEPROM info */
EEPROMWrite(0, (unsigned char *)&lasat_board_info.li_eeprom_info,
sizeof(struct lasat_eeprom_struct));

mutex_unlock(&lasat_eeprom_mutex);
}
Loading

0 comments on commit 1f34f2e

Please sign in to comment.