# \[PATCH\] radeonfb: Add quirk for the graphics adapter in some JSxx

- Subsystems: FRAMEBUFFER LAYER, THE REST
- Maintainers: Helge Deller, Linus Torvalds
- List: linux-fbdev
- 4 messages, 3 authors
- Page: https://ratatoskr.run/linux-fbdev/2012/07/9470305/t

## \[PATCH\] radeonfb: Add quirk for the graphics adapter in some JSxx

- From: \<hidden\>
- Date: 2012-07-18 17:00:21 
- Message: https://ratatoskr.run/linux-fbdev/2012/07/9470305.md

```text
From: Tony Breeds <redacted>

These devices are set to 640x480 by firmware, switch them to 800x600@60
so that the graphical installer can run on remote console.

Reported by IBM during SLES10 SP2 beta testing:

https://bugzilla.novell.com/show_bug.cgi?idF1002
LTC50817

Signed-off-by: Olaf Hering <redacted>

diff --git a/drivers/video/aty/radeon_monitor.c b/drivers/video/aty/radeon_monitor.c
index 9261c91..5c23eac 100644
--- a/drivers/video/aty/radeon_monitor.c
+++ b/drivers/video/aty/radeon_monitor.c
@@ -730,6 +730,25 @@ static void radeon_videomode_to_var(struct fb_var_screeninfo *var,
 	var->vmode = mode->vmode;
 }
 
+#ifdef CONFIG_PPC_PSERIES
+static int is_powerblade(const char *model)
+{
+	struct device_node *root;
+	const char* cp;
+	int len, l, rc = 0;
+
+	root = of_find_node_by_path("/");
+	if (root && model) {
+		l = strlen(model);
+		cp = of_get_property(root, "model", &len);
+		if (cp)
+			rc = memcmp(model, cp, min(len, l)) = 0;
+		of_node_put(root);
+	}
+	return rc;
+}
+#endif
+
 /*
  * Build the modedb for head 1 (head 2 will come later), check panel infos
  * from either BIOS or EDID, and pick up the default mode
@@ -865,6 +884,22 @@ void __devinit radeon_check_modes(struct radeonfb_info *rinfo, const char *mode_
 			has_default_mode = 1;
  	}
 
+#ifdef CONFIG_PPC_PSERIES
+	if (!has_default_mode && (
+		is_powerblade("IBM,8842") || /* JS20 */
+		is_powerblade("IBM,8844") || /* JS21 */
+		is_powerblade("IBM,7998") || /* JS12/JS21/JS22 */
+		is_powerblade("IBM,0792") || /* QS21 */
+		is_powerblade("IBM,0793")    /* QS22 */
+	    )) {
+		printk("Falling back to 800x600 on JSxx hardware\n");
+		if (fb_find_mode(&info->var, info, "800x600@60",
+				 info->monspecs.modedb,
+				 info->monspecs.modedb_len, NULL, 8) != 0)
+			has_default_mode = 1;
+	}
+#endif
+
 	/*
 	 * Still no mode, let's pick up a default from the db
 	 */
-- 
1.7.10.4

```

## RE: \[PATCH\] radeonfb: Add quirk for the graphics adapter in some JSxx

- From: Jingoo Han \<hidden\>
- Date: 2012-07-19 05:12:35 
- Message: https://ratatoskr.run/linux-fbdev/2012/07/9470308.md

```text
On Thursday, July 19, 2012 1:49 AM, olaf@aepfle.de wrote:
> From: Tony Breeds <redacted>
> 
> These devices are set to 640x480 by firmware, switch them to 800x600@60
> so that the graphical installer can run on remote console.
> 
> Reported by IBM during SLES10 SP2 beta testing:
> 
> https://bugzilla.novell.com/show_bug.cgi?idF1002
> LTC50817
> 
> Signed-off-by: Olaf Hering <redacted>

If the author is Tony Breeds, please add 'Signed-off-by: Tony Breeds [ref]'.

Best regards,
Jingoo Han

> 
> diff --git a/drivers/video/aty/radeon_monitor.c b/drivers/video/aty/radeon_monitor.c
> index 9261c91..5c23eac 100644
> --- a/drivers/video/aty/radeon_monitor.c
> +++ b/drivers/video/aty/radeon_monitor.c
> @@ -730,6 +730,25 @@ static void radeon_videomode_to_var(struct fb_var_screeninfo *var,
>  	var->vmode = mode->vmode;
>  }
> 
> +#ifdef CONFIG_PPC_PSERIES
> +static int is_powerblade(const char *model)
> +{
> +	struct device_node *root;
> +	const char* cp;
> +	int len, l, rc = 0;
> +
> +	root = of_find_node_by_path("/");
> +	if (root && model) {
> +		l = strlen(model);
> +		cp = of_get_property(root, "model", &len);
> +		if (cp)
> +			rc = memcmp(model, cp, min(len, l)) = 0;
> +		of_node_put(root);
> +	}
> +	return rc;
> +}
> +#endif
> +
>  /*
>   * Build the modedb for head 1 (head 2 will come later), check panel infos
>   * from either BIOS or EDID, and pick up the default mode
> @@ -865,6 +884,22 @@ void __devinit radeon_check_modes(struct radeonfb_info *rinfo, const char *mode_
>  			has_default_mode = 1;
>   	}
> 
> +#ifdef CONFIG_PPC_PSERIES
> +	if (!has_default_mode && (
> +		is_powerblade("IBM,8842") || /* JS20 */
> +		is_powerblade("IBM,8844") || /* JS21 */
> +		is_powerblade("IBM,7998") || /* JS12/JS21/JS22 */
> +		is_powerblade("IBM,0792") || /* QS21 */
> +		is_powerblade("IBM,0793")    /* QS22 */
> +	    )) {
> +		printk("Falling back to 800x600 on JSxx hardware\n");
> +		if (fb_find_mode(&info->var, info, "800x600@60",
> +				 info->monspecs.modedb,
> +				 info->monspecs.modedb_len, NULL, 8) != 0)
> +			has_default_mode = 1;
> +	}
> +#endif
> +
>  	/*
>  	 * Still no mode, let's pick up a default from the db
>  	 */
> --
> 1.7.10.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

```

## Re: \[PATCH\] radeonfb: Add quirk for the graphics adapter in some JSxx

- From: Olaf Hering \<hidden\>
- Date: 2012-07-19 05:21:00 
- Message: https://ratatoskr.run/linux-fbdev/2012/07/9470307.md

```text
On Thu, Jul 19, Jingoo Han wrote:

> On Thursday, July 19, 2012 1:49 AM, olaf@aepfle.de wrote:
> > From: Tony Breeds <redacted>
> > 
> > These devices are set to 640x480 by firmware, switch them to 800x600@60
> > so that the graphical installer can run on remote console.
> > 
> > Reported by IBM during SLES10 SP2 beta testing:
> > 
> > https://bugzilla.novell.com/show_bug.cgi?idF1002
> > LTC50817
> > 
> > Signed-off-by: Olaf Hering <redacted>
> 
> If the author is Tony Breeds, please add 'Signed-off-by: Tony Breeds [ref]'.

He provided the initial version of the change, but did not add his tag
back in 2009. Tony, perhaps you can do that now?

Olaf
```

## Re: \[PATCH\] radeonfb: Add quirk for the graphics adapter in some JSxx

- From: Tony Breeds \<hidden\>
- Date: 2012-07-19 05:48:38 
- Message: https://ratatoskr.run/linux-fbdev/2012/07/9470309.md

```text
On Wed, Jul 18, 2012 at 06:49:04PM +0200, olaf@aepfle.de wrote:

Thanks for following this up.

> From: Tony Breeds <redacted>
> 
> These devices are set to 640x480 by firmware, switch them to 800x600@60
> so that the graphical installer can run on remote console.
> 
> Reported by IBM during SLES10 SP2 beta testing:
> 
> https://bugzilla.novell.com/show_bug.cgi?id=461002
> LTC50817
> 
> Signed-off-by: Olaf Hering <redacted>

Signed-off-by: Tony Breeds <redacted>

Yours Tony
```
