mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-30 21:44:27 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			177 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			177 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 46d01492b2c50791b9b66f9b9154ac8d25acaeb9 Mon Sep 17 00:00:00 2001
 | |
| From: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
 | |
| Date: Wed, 3 Dec 2008 13:52:21 +0000
 | |
| Subject: [PATCH] powerpc/ps3: Add sub-match id modalias support
 | |
| 
 | |
| commit 059e4938f8b060b10c4352e6c45739473bc73267 ("powerpc/ps3: Add a sub-match
 | |
| id to ps3_system_bus") forgot to update the module alias support:
 | |
|   - Add the sub-match ids to the module aliases, so udev can distinguish
 | |
|     between different types of sub-devices.
 | |
|   - Rename PS3_MODULE_ALIAS_GRAPHICS to PS3_MODULE_ALIAS_GPU_FB, as ps3fb
 | |
|     binds to the "FB" sub-device.
 | |
| 
 | |
| Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
 | |
| Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
 | |
| Signed-off-by: Paul Mackerras <paulus@samba.org>
 | |
| ---
 | |
|  arch/powerpc/include/asm/ps3.h           |   53 ++++++++++++++---------------
 | |
|  arch/powerpc/platforms/ps3/device-init.c |    4 +-
 | |
|  arch/powerpc/platforms/ps3/system-bus.c  |   10 +++--
 | |
|  drivers/video/ps3fb.c                    |    6 ++--
 | |
|  4 files changed, 37 insertions(+), 36 deletions(-)
 | |
| 
 | |
| diff --git a/arch/powerpc/include/asm/ps3.h b/arch/powerpc/include/asm/ps3.h
 | |
| index 4299365..cff30c0 100644
 | |
| --- a/arch/powerpc/include/asm/ps3.h
 | |
| +++ b/arch/powerpc/include/asm/ps3.h
 | |
| @@ -305,30 +305,34 @@ static inline const char* ps3_result(int result)
 | |
|  /* system bus routines */
 | |
|  
 | |
|  enum ps3_match_id {
 | |
| -	PS3_MATCH_ID_EHCI           = 1,
 | |
| -	PS3_MATCH_ID_OHCI           = 2,
 | |
| -	PS3_MATCH_ID_GELIC          = 3,
 | |
| -	PS3_MATCH_ID_AV_SETTINGS    = 4,
 | |
| -	PS3_MATCH_ID_SYSTEM_MANAGER = 5,
 | |
| -	PS3_MATCH_ID_STOR_DISK      = 6,
 | |
| -	PS3_MATCH_ID_STOR_ROM       = 7,
 | |
| -	PS3_MATCH_ID_STOR_FLASH     = 8,
 | |
| -	PS3_MATCH_ID_SOUND          = 9,
 | |
| -	PS3_MATCH_ID_GRAPHICS       = 10,
 | |
| -	PS3_MATCH_ID_LPM            = 11,
 | |
| +	PS3_MATCH_ID_EHCI		= 1,
 | |
| +	PS3_MATCH_ID_OHCI		= 2,
 | |
| +	PS3_MATCH_ID_GELIC		= 3,
 | |
| +	PS3_MATCH_ID_AV_SETTINGS	= 4,
 | |
| +	PS3_MATCH_ID_SYSTEM_MANAGER	= 5,
 | |
| +	PS3_MATCH_ID_STOR_DISK		= 6,
 | |
| +	PS3_MATCH_ID_STOR_ROM		= 7,
 | |
| +	PS3_MATCH_ID_STOR_FLASH		= 8,
 | |
| +	PS3_MATCH_ID_SOUND		= 9,
 | |
| +	PS3_MATCH_ID_GPU		= 10,
 | |
| +	PS3_MATCH_ID_LPM		= 11,
 | |
|  };
 | |
|  
 | |
| -#define PS3_MODULE_ALIAS_EHCI           "ps3:1"
 | |
| -#define PS3_MODULE_ALIAS_OHCI           "ps3:2"
 | |
| -#define PS3_MODULE_ALIAS_GELIC          "ps3:3"
 | |
| -#define PS3_MODULE_ALIAS_AV_SETTINGS    "ps3:4"
 | |
| -#define PS3_MODULE_ALIAS_SYSTEM_MANAGER "ps3:5"
 | |
| -#define PS3_MODULE_ALIAS_STOR_DISK      "ps3:6"
 | |
| -#define PS3_MODULE_ALIAS_STOR_ROM       "ps3:7"
 | |
| -#define PS3_MODULE_ALIAS_STOR_FLASH     "ps3:8"
 | |
| -#define PS3_MODULE_ALIAS_SOUND          "ps3:9"
 | |
| -#define PS3_MODULE_ALIAS_GRAPHICS       "ps3:10"
 | |
| -#define PS3_MODULE_ALIAS_LPM            "ps3:11"
 | |
| +enum ps3_match_sub_id {
 | |
| +	PS3_MATCH_SUB_ID_GPU_FB		= 1,
 | |
| +};
 | |
| +
 | |
| +#define PS3_MODULE_ALIAS_EHCI		"ps3:1:0"
 | |
| +#define PS3_MODULE_ALIAS_OHCI		"ps3:2:0"
 | |
| +#define PS3_MODULE_ALIAS_GELIC		"ps3:3:0"
 | |
| +#define PS3_MODULE_ALIAS_AV_SETTINGS	"ps3:4:0"
 | |
| +#define PS3_MODULE_ALIAS_SYSTEM_MANAGER	"ps3:5:0"
 | |
| +#define PS3_MODULE_ALIAS_STOR_DISK	"ps3:6:0"
 | |
| +#define PS3_MODULE_ALIAS_STOR_ROM	"ps3:7:0"
 | |
| +#define PS3_MODULE_ALIAS_STOR_FLASH	"ps3:8:0"
 | |
| +#define PS3_MODULE_ALIAS_SOUND		"ps3:9:0"
 | |
| +#define PS3_MODULE_ALIAS_GPU_FB		"ps3:10:1"
 | |
| +#define PS3_MODULE_ALIAS_LPM		"ps3:11:0"
 | |
|  
 | |
|  enum ps3_system_bus_device_type {
 | |
|  	PS3_DEVICE_TYPE_IOC0 = 1,
 | |
| @@ -337,11 +341,6 @@ enum ps3_system_bus_device_type {
 | |
|  	PS3_DEVICE_TYPE_LPM,
 | |
|  };
 | |
|  
 | |
| -enum ps3_match_sub_id {
 | |
| -	/* for PS3_MATCH_ID_GRAPHICS */
 | |
| -	PS3_MATCH_SUB_ID_FB		= 1,
 | |
| -};
 | |
| -
 | |
|  /**
 | |
|   * struct ps3_system_bus_device - a device on the system bus
 | |
|   */
 | |
| diff --git a/arch/powerpc/platforms/ps3/device-init.c b/arch/powerpc/platforms/ps3/device-init.c
 | |
| index 43816da..dbc124e 100644
 | |
| --- a/arch/powerpc/platforms/ps3/device-init.c
 | |
| +++ b/arch/powerpc/platforms/ps3/device-init.c
 | |
| @@ -497,8 +497,8 @@ static int __init ps3_register_graphics_devices(void)
 | |
|  	if (!p)
 | |
|  		return -ENOMEM;
 | |
|  
 | |
| -	p->dev.match_id = PS3_MATCH_ID_GRAPHICS;
 | |
| -	p->dev.match_sub_id = PS3_MATCH_SUB_ID_FB;
 | |
| +	p->dev.match_id = PS3_MATCH_ID_GPU;
 | |
| +	p->dev.match_sub_id = PS3_MATCH_SUB_ID_GPU_FB;
 | |
|  	p->dev.dev_type = PS3_DEVICE_TYPE_IOC0;
 | |
|  
 | |
|  	result = ps3_system_bus_device_register(&p->dev);
 | |
| diff --git a/arch/powerpc/platforms/ps3/system-bus.c b/arch/powerpc/platforms/ps3/system-bus.c
 | |
| index 661e9f7..d3da1e6 100644
 | |
| --- a/arch/powerpc/platforms/ps3/system-bus.c
 | |
| +++ b/arch/powerpc/platforms/ps3/system-bus.c
 | |
| @@ -175,7 +175,7 @@ int ps3_open_hv_device(struct ps3_system_bus_device *dev)
 | |
|  		return ps3_open_hv_device_sb(dev);
 | |
|  
 | |
|  	case PS3_MATCH_ID_SOUND:
 | |
| -	case PS3_MATCH_ID_GRAPHICS:
 | |
| +	case PS3_MATCH_ID_GPU:
 | |
|  		return ps3_open_hv_device_gpu(dev);
 | |
|  
 | |
|  	case PS3_MATCH_ID_AV_SETTINGS:
 | |
| @@ -213,7 +213,7 @@ int ps3_close_hv_device(struct ps3_system_bus_device *dev)
 | |
|  		return ps3_close_hv_device_sb(dev);
 | |
|  
 | |
|  	case PS3_MATCH_ID_SOUND:
 | |
| -	case PS3_MATCH_ID_GRAPHICS:
 | |
| +	case PS3_MATCH_ID_GPU:
 | |
|  		return ps3_close_hv_device_gpu(dev);
 | |
|  
 | |
|  	case PS3_MATCH_ID_AV_SETTINGS:
 | |
| @@ -453,7 +453,8 @@ static int ps3_system_bus_uevent(struct device *_dev, struct kobj_uevent_env *en
 | |
|  {
 | |
|  	struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev);
 | |
|  
 | |
| -	if (add_uevent_var(env, "MODALIAS=ps3:%d", dev->match_id))
 | |
| +	if (add_uevent_var(env, "MODALIAS=ps3:%d:%d", dev->match_id,
 | |
| +			   dev->match_sub_id))
 | |
|  		return -ENOMEM;
 | |
|  	return 0;
 | |
|  }
 | |
| @@ -462,7 +463,8 @@ static ssize_t modalias_show(struct device *_dev, struct device_attribute *a,
 | |
|  	char *buf)
 | |
|  {
 | |
|  	struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev);
 | |
| -	int len = snprintf(buf, PAGE_SIZE, "ps3:%d\n", dev->match_id);
 | |
| +	int len = snprintf(buf, PAGE_SIZE, "ps3:%d:%d\n", dev->match_id,
 | |
| +			   dev->match_sub_id);
 | |
|  
 | |
|  	return (len >= PAGE_SIZE) ? (PAGE_SIZE - 1) : len;
 | |
|  }
 | |
| diff --git a/drivers/video/ps3fb.c b/drivers/video/ps3fb.c
 | |
| index bd3e39b..38ac805 100644
 | |
| --- a/drivers/video/ps3fb.c
 | |
| +++ b/drivers/video/ps3fb.c
 | |
| @@ -1289,8 +1289,8 @@ static int ps3fb_shutdown(struct ps3_system_bus_device *dev)
 | |
|  }
 | |
|  
 | |
|  static struct ps3_system_bus_driver ps3fb_driver = {
 | |
| -	.match_id	= PS3_MATCH_ID_GRAPHICS,
 | |
| -	.match_sub_id	= PS3_MATCH_SUB_ID_FB,
 | |
| +	.match_id	= PS3_MATCH_ID_GPU,
 | |
| +	.match_sub_id	= PS3_MATCH_SUB_ID_GPU_FB,
 | |
|  	.core.name	= DEVICE_NAME,
 | |
|  	.core.owner	= THIS_MODULE,
 | |
|  	.probe		= ps3fb_probe,
 | |
| @@ -1348,4 +1348,4 @@ module_exit(ps3fb_exit);
 | |
|  MODULE_LICENSE("GPL");
 | |
|  MODULE_DESCRIPTION("PS3 GPU Frame Buffer Driver");
 | |
|  MODULE_AUTHOR("Sony Computer Entertainment Inc.");
 | |
| -MODULE_ALIAS(PS3_MODULE_ALIAS_GRAPHICS);
 | |
| +MODULE_ALIAS(PS3_MODULE_ALIAS_GPU_FB);
 | |
| -- 
 | |
| 1.6.0.4
 | |
| 
 |