[Fwd: [PATCH]: Un-break SBUS interrupts in feisty]

Fabio Massimo Di Nitto fabbione at ubuntu.com
Wed Jun 13 14:02:42 UTC 2007


Signoff from me too.. Already tested on sun4v.

I don't have SBUS machines to test on, but David already tested on his machine park.

Fabio

Ben Collins wrote:
> I'm ACK'ing this patch mainly because we let the broken one in. Good
> thing is, we didn't break systems that we are trying to support vendor
> wise, bad thing is we did break equipment that a good portion of our
> sparc userbase would be using (doubting many normal users have sun4v
> right now).
> 
> Phillip, please get some precompiled kernels ready for sparc when you
> can, and email myself and Fabio when they are ready. I have a sbus sparc
> system to test on, as well as a sun4v to regression test.
> 
> 
> 
> ------------------------------------------------------------------------
> 
> Subject:
> [PATCH]: Un-break SBUS interrupts in feisty
> From:
> David Miller <davem at davemloft.net>
> Date:
> Thu, 07 Jun 2007 17:07:43 -0700 (PDT)
> To:
> fabbione at ubuntu.com
> 
> To:
> fabbione at ubuntu.com
> CC:
> bcollins at ubuntu.com
> 
> 
> Sorry guys, I totally broke every single SBUS system
> out there in the Feisty update with the Ultra45 PCI
> controller support patch :-/
> 
> This fixes it up.  Tested on ultra2.
> 
> diff --git a/arch/sparc64/kernel/prom.c b/arch/sparc64/kernel/prom.c
> index 31fe80c..8b006db 100644
> --- a/arch/sparc64/kernel/prom.c
> +++ b/arch/sparc64/kernel/prom.c
> @@ -928,29 +928,29 @@ static void fire_irq_trans_init(struct device_node *dp)
>   * This should conform to both Sunfire/Wildfire server and Fusion
>   * desktop designs.
>   */
> -#define SYSIO_IMAP_SLOT0	0x2c04UL
> -#define SYSIO_IMAP_SLOT1	0x2c0cUL
> -#define SYSIO_IMAP_SLOT2	0x2c14UL
> -#define SYSIO_IMAP_SLOT3	0x2c1cUL
> -#define SYSIO_IMAP_SCSI		0x3004UL
> -#define SYSIO_IMAP_ETH		0x300cUL
> -#define SYSIO_IMAP_BPP		0x3014UL
> -#define SYSIO_IMAP_AUDIO	0x301cUL
> -#define SYSIO_IMAP_PFAIL	0x3024UL
> -#define SYSIO_IMAP_KMS		0x302cUL
> -#define SYSIO_IMAP_FLPY		0x3034UL
> -#define SYSIO_IMAP_SHW		0x303cUL
> -#define SYSIO_IMAP_KBD		0x3044UL
> -#define SYSIO_IMAP_MS		0x304cUL
> -#define SYSIO_IMAP_SER		0x3054UL
> -#define SYSIO_IMAP_TIM0		0x3064UL
> -#define SYSIO_IMAP_TIM1		0x306cUL
> -#define SYSIO_IMAP_UE		0x3074UL
> -#define SYSIO_IMAP_CE		0x307cUL
> -#define SYSIO_IMAP_SBERR	0x3084UL
> -#define SYSIO_IMAP_PMGMT	0x308cUL
> -#define SYSIO_IMAP_GFX		0x3094UL
> -#define SYSIO_IMAP_EUPA		0x309cUL
> +#define SYSIO_IMAP_SLOT0	0x2c00UL
> +#define SYSIO_IMAP_SLOT1	0x2c08UL
> +#define SYSIO_IMAP_SLOT2	0x2c10UL
> +#define SYSIO_IMAP_SLOT3	0x2c18UL
> +#define SYSIO_IMAP_SCSI		0x3000UL
> +#define SYSIO_IMAP_ETH		0x3008UL
> +#define SYSIO_IMAP_BPP		0x3010UL
> +#define SYSIO_IMAP_AUDIO	0x3018UL
> +#define SYSIO_IMAP_PFAIL	0x3020UL
> +#define SYSIO_IMAP_KMS		0x3028UL
> +#define SYSIO_IMAP_FLPY		0x3030UL
> +#define SYSIO_IMAP_SHW		0x3038UL
> +#define SYSIO_IMAP_KBD		0x3040UL
> +#define SYSIO_IMAP_MS		0x3048UL
> +#define SYSIO_IMAP_SER		0x3050UL
> +#define SYSIO_IMAP_TIM0		0x3060UL
> +#define SYSIO_IMAP_TIM1		0x3068UL
> +#define SYSIO_IMAP_UE		0x3070UL
> +#define SYSIO_IMAP_CE		0x3078UL
> +#define SYSIO_IMAP_SBERR	0x3080UL
> +#define SYSIO_IMAP_PMGMT	0x3088UL
> +#define SYSIO_IMAP_GFX		0x3090UL
> +#define SYSIO_IMAP_EUPA		0x3098UL
>  
>  #define bogon     ((unsigned long) -1)
>  static unsigned long sysio_irq_offsets[] = {
> @@ -1001,10 +1001,10 @@ static unsigned long sysio_irq_offsets[] = {
>   * Interrupt Clear register pointer, SYSIO specific version.
>   */
>  #define SYSIO_ICLR_UNUSED0	0x3400UL
> -#define SYSIO_ICLR_SLOT0	0x340cUL
> -#define SYSIO_ICLR_SLOT1	0x344cUL
> -#define SYSIO_ICLR_SLOT2	0x348cUL
> -#define SYSIO_ICLR_SLOT3	0x34ccUL
> +#define SYSIO_ICLR_SLOT0	0x3408UL
> +#define SYSIO_ICLR_SLOT1	0x3448UL
> +#define SYSIO_ICLR_SLOT2	0x3488UL
> +#define SYSIO_ICLR_SLOT3	0x34c8UL
>  static unsigned long sysio_imap_to_iclr(unsigned long imap)
>  {
>  	unsigned long diff = SYSIO_ICLR_UNUSED0 - SYSIO_IMAP_SLOT0;
> diff --git a/arch/sparc64/kernel/sbus.c b/arch/sparc64/kernel/sbus.c
> index 01d6d86..1fa7daa 100644
> --- a/arch/sparc64/kernel/sbus.c
> +++ b/arch/sparc64/kernel/sbus.c
> @@ -696,29 +696,29 @@ void sbus_set_sbus64(struct sbus_dev *sdev, int bursts)
>   * This should conform to both Sunfire/Wildfire server and Fusion
>   * desktop designs.
>   */
> -#define SYSIO_IMAP_SLOT0	0x2c04UL
> -#define SYSIO_IMAP_SLOT1	0x2c0cUL
> -#define SYSIO_IMAP_SLOT2	0x2c14UL
> -#define SYSIO_IMAP_SLOT3	0x2c1cUL
> -#define SYSIO_IMAP_SCSI		0x3004UL
> -#define SYSIO_IMAP_ETH		0x300cUL
> -#define SYSIO_IMAP_BPP		0x3014UL
> -#define SYSIO_IMAP_AUDIO	0x301cUL
> -#define SYSIO_IMAP_PFAIL	0x3024UL
> -#define SYSIO_IMAP_KMS		0x302cUL
> -#define SYSIO_IMAP_FLPY		0x3034UL
> -#define SYSIO_IMAP_SHW		0x303cUL
> -#define SYSIO_IMAP_KBD		0x3044UL
> -#define SYSIO_IMAP_MS		0x304cUL
> -#define SYSIO_IMAP_SER		0x3054UL
> -#define SYSIO_IMAP_TIM0		0x3064UL
> -#define SYSIO_IMAP_TIM1		0x306cUL
> -#define SYSIO_IMAP_UE		0x3074UL
> -#define SYSIO_IMAP_CE		0x307cUL
> -#define SYSIO_IMAP_SBERR	0x3084UL
> -#define SYSIO_IMAP_PMGMT	0x308cUL
> -#define SYSIO_IMAP_GFX		0x3094UL
> -#define SYSIO_IMAP_EUPA		0x309cUL
> +#define SYSIO_IMAP_SLOT0	0x2c00UL
> +#define SYSIO_IMAP_SLOT1	0x2c08UL
> +#define SYSIO_IMAP_SLOT2	0x2c10UL
> +#define SYSIO_IMAP_SLOT3	0x2c18UL
> +#define SYSIO_IMAP_SCSI		0x3000UL
> +#define SYSIO_IMAP_ETH		0x3008UL
> +#define SYSIO_IMAP_BPP		0x3010UL
> +#define SYSIO_IMAP_AUDIO	0x3018UL
> +#define SYSIO_IMAP_PFAIL	0x3020UL
> +#define SYSIO_IMAP_KMS		0x3028UL
> +#define SYSIO_IMAP_FLPY		0x3030UL
> +#define SYSIO_IMAP_SHW		0x3038UL
> +#define SYSIO_IMAP_KBD		0x3040UL
> +#define SYSIO_IMAP_MS		0x3048UL
> +#define SYSIO_IMAP_SER		0x3050UL
> +#define SYSIO_IMAP_TIM0		0x3060UL
> +#define SYSIO_IMAP_TIM1		0x3068UL
> +#define SYSIO_IMAP_UE		0x3070UL
> +#define SYSIO_IMAP_CE		0x3078UL
> +#define SYSIO_IMAP_SBERR	0x3080UL
> +#define SYSIO_IMAP_PMGMT	0x3088UL
> +#define SYSIO_IMAP_GFX		0x3090UL
> +#define SYSIO_IMAP_EUPA		0x3098UL
>  
>  #define bogon     ((unsigned long) -1)
>  static unsigned long sysio_irq_offsets[] = {
> @@ -767,10 +767,10 @@ static unsigned long sysio_irq_offsets[] = {
>   * Interrupt Clear register pointer, SYSIO specific version.
>   */
>  #define SYSIO_ICLR_UNUSED0	0x3400UL
> -#define SYSIO_ICLR_SLOT0	0x340cUL
> -#define SYSIO_ICLR_SLOT1	0x344cUL
> -#define SYSIO_ICLR_SLOT2	0x348cUL
> -#define SYSIO_ICLR_SLOT3	0x34ccUL
> +#define SYSIO_ICLR_SLOT0	0x3408UL
> +#define SYSIO_ICLR_SLOT1	0x3448UL
> +#define SYSIO_ICLR_SLOT2	0x3488UL
> +#define SYSIO_ICLR_SLOT3	0x34c8UL
>  static unsigned long sysio_imap_to_iclr(unsigned long imap)
>  {
>  	unsigned long diff = SYSIO_ICLR_UNUSED0 - SYSIO_IMAP_SLOT0;


-- 
I'm going to make him an offer he can't refuse.




More information about the kernel-team mailing list