linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Geert Uytterhoeven <geert@linux-m68k.org>
To: Finn Thain <fthain@telegraphics.com.au>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Linux/m68k" <linux-m68k@vger.kernel.org>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
	"linux-api@vger.kernel.org" <linux-api@vger.kernel.org>
Subject: Re: [RFC v2 23/24] m68k/mac: Fix PRAM accessors
Date: Mon, 15 Jun 2015 10:23:17 +0200	[thread overview]
Message-ID: <CAMuHMdWzKvWjAE3u54E4xewEDX+zJqEDEvRmO2twpeD2vmBzog@mail.gmail.com> (raw)
In-Reply-To: <20150614074613.054681242@telegraphics.com.au>

Hi Finn,

On Sun, Jun 14, 2015 at 9:46 AM, Finn Thain <fthain@telegraphics.com.au> wrote:
> --- linux.orig/arch/m68k/mac/misc.c     2015-06-14 17:46:02.000000000 +1000
> +++ linux/arch/m68k/mac/misc.c  2015-06-14 17:46:03.000000000 +1000
> @@ -284,11 +287,31 @@ static void via_pram_command(int command
>
>  static unsigned char via_pram_read_byte(int offset)
>  {
> -       return 0;
> +       unsigned char temp;
> +       int addr = ((offset & 0xE0) << 3) | ((offset & 0x1F) << 2);

Can you please add #defines for the magic values?

> +
> +       /* Use RTC command 0x38 for XPRAM access, as per MESS source code */
> +       via_pram_command(addr | 0x3800 | 0x8001, &temp);

It seems 0x38 is already documented in <linux/pmu.h> (see below), or not (it's
shifted left by 8 bits?)?

> +
> +       return temp;
>  }
>
>  static void via_pram_write_byte(unsigned char data, int offset)
>  {
> +       unsigned char temp;
> +       int addr = ((offset & 0xE0) << 3) | ((offset & 0x1F) << 2);
> +
> +       /* Clear the write protect bit */
> +       temp = 0x55;
> +       via_pram_command(0x34 | 0x01, &temp);
> +
> +       /* Write the byte to XPRAM */
> +       temp = data;
> +       via_pram_command(0x3800 | 0x0001 | addr, &temp);
> +
> +       /* Set the write protect bit */
> +       temp = 0xD5;
> +       via_pram_command(0x34 | 0x01, &temp);

More magic values...

>  }
>
>  /*
> Index: linux/include/uapi/linux/pmu.h
> ===================================================================
> --- linux.orig/include/uapi/linux/pmu.h 2015-06-14 17:45:34.000000000 +1000
> +++ linux/include/uapi/linux/pmu.h      2015-06-14 17:46:03.000000000 +1000
> @@ -18,7 +18,9 @@
>  #define PMU_POWER_CTRL         0x11    /* control power of some devices */
>  #define PMU_ADB_CMD            0x20    /* send ADB packet */
>  #define PMU_ADB_POLL_OFF       0x21    /* disable ADB auto-poll */
> +#define PMU_WRITE_XPRAM                0x32    /* write eXtended Parameter RAM */
>  #define PMU_WRITE_NVRAM                0x33    /* write non-volatile RAM */
> +#define PMU_READ_XPRAM         0x3a    /* read eXtended Parameter RAM */
>  #define PMU_READ_NVRAM         0x3b    /* read non-volatile RAM */
>  #define PMU_SET_RTC            0x30    /* set real-time clock */
>  #define PMU_READ_RTC           0x38    /* read real-time clock */

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

  reply	other threads:[~2015-06-15  8:23 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-14  7:46 [RFC v2 00/24] Re-use nvram module Finn Thain
2015-06-14  7:46 ` [RFC v2 01/24] macintosh/nvram: Remove as unused Finn Thain
2015-06-15  6:41   ` [RFC,v2,01/24] " Michael Ellerman
2015-06-14  7:46 ` [RFC v2 02/24] scsi/atari_scsi: Dont select CONFIG_NVRAM Finn Thain
2015-06-14  7:46 ` [RFC v2 03/24] m68k/atari: Move Atari-specific code out of drivers/char/nvram.c Finn Thain
2015-06-14  7:46 ` [RFC v2 04/24] m68k/atari: Replace nvram_{read,write}_byte with arch_nvram_ops Finn Thain
2015-06-14  7:46 ` [RFC v2 05/24] char/nvram: Re-order functions to remove forward declarations and #ifdefs Finn Thain
2015-06-14  7:46 ` [RFC v2 06/24] char/nvram: Adopt arch_nvram_ops Finn Thain
2015-06-14  7:46 ` [RFC v2 07/24] x86/thinkpad_acpi: Use arch_nvram_ops methods instead of nvram_read_byte() and nvram_write_byte() Finn Thain
2015-06-14  7:46 ` [RFC v2 08/24] char/nvram: Allow the set_checksum and initialize ioctls to be omitted Finn Thain
2015-06-14  7:46 ` [RFC v2 09/24] char/nvram: Implement NVRAM read/write methods Finn Thain
2015-06-14  7:46 ` [RFC v2 10/24] char/nvram: Use generic fixed_size_llseek() Finn Thain
2015-06-14  7:46 ` [RFC v2 11/24] m68k/atari: Implement arch_nvram_ops methods and enable CONFIG_HAVE_ARCH_NVRAM_OPS Finn Thain
2015-06-14  7:46 ` [RFC v2 12/24] char/nvram: Add "devname:nvram" module alias Finn Thain
2015-06-14  7:46 ` [RFC v2 13/24] powerpc: Cleanup nvram includes Finn Thain
2015-06-14  7:46 ` [RFC v2 14/24] powerpc: Add missing ppc_md.nvram_size for CHRP and PowerMac Finn Thain
2015-06-14  7:46 ` [RFC v2 15/24] powerpc: Implement arch_nvram_ops.get_size() and remove old nvram_* exports Finn Thain
2015-06-14  7:46 ` [RFC v2 16/24] powerpc: Implement nvram sync ioctl Finn Thain
2015-06-14  7:46 ` [RFC v2 17/24] powerpc, fbdev: Use arch_nvram_ops methods instead of nvram_read_byte() and nvram_write_byte() Finn Thain
2015-06-14  7:46 ` [RFC v2 18/24] nvram: Drop nvram_* symbol exports and prototypes Finn Thain
2015-06-14  7:46 ` [RFC v2 19/24] powerpc: Remove CONFIG_GENERIC_NVRAM and adopt CONFIG_HAVE_ARCH_NVRAM_OPS Finn Thain
2015-06-14  7:46 ` [RFC v2 20/24] char/generic_nvram: Remove as unused Finn Thain
2015-06-14  7:46 ` [RFC v2 21/24] powerpc: Adopt nvram module for PPC64 Finn Thain
2015-06-14  7:46 ` [RFC v2 22/24] m68k/mac: Adopt naming and calling conventions for PRAM routines Finn Thain
2015-06-14  7:46 ` [RFC v2 23/24] m68k/mac: Fix PRAM accessors Finn Thain
2015-06-15  8:23   ` Geert Uytterhoeven [this message]
2015-06-16  3:10     ` Finn Thain
2015-06-18  4:49       ` Finn Thain
2015-06-18  6:59         ` Geert Uytterhoeven
2015-06-18 16:52       ` Andreas Schwab
2015-06-14  7:46 ` [RFC v2 24/24] m68k: Dispatch nvram_ops calls to Atari or Mac functions Finn Thain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAMuHMdWzKvWjAE3u54E4xewEDX+zJqEDEvRmO2twpeD2vmBzog@mail.gmail.com \
    --to=geert@linux-m68k.org \
    --cc=fthain@telegraphics.com.au \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).