rpms/kernel/F-10 patch-2.6.29-rc6-git5.bz2.sign, NONE, 1.1 .cvsignore, 1.992, 1.993 config-generic, 1.216, 1.217 drm-modesetting-radeon.patch, 1.72, 1.73 drm-nouveau.patch, 1.9, 1.10 kernel.spec, 1.1279, 1.1280 linux-2.6-hdpvr.patch, 1.3, 1.4 linux-2.6.29-lirc.patch, 1.2, 1.3 sources, 1.953, 1.954 upstream, 1.864, 1.865 patch-2.6.29-rc6-git4.bz2.sign, 1.1, NONE
Chuck Ebbert
cebbert at fedoraproject.org
Sun Mar 1 02:53:09 UTC 2009
- Previous message: rpms/flexdock/F-9 flexdock-build.patch, NONE, 1.1 flexdock-generate-tarball.sh, NONE, 1.1 flexdock-jni.patch, NONE, 1.1 flexdock-nojmf.patch, NONE, 1.1 flexdock-skinlfPainter-path.patch, NONE, 1.1 flexdock-skinlfTitlebarui-path.patch, NONE, 1.1 flexdock.spec, NONE, 1.1 import.log, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Next message: rpms/flexdock/F-10 flexdock-build.patch, NONE, 1.1 flexdock-generate-tarball.sh, NONE, 1.1 flexdock-jni.patch, NONE, 1.1 flexdock-nojmf.patch, NONE, 1.1 flexdock-skinlfPainter-path.patch, NONE, 1.1 flexdock-skinlfTitlebarui-path.patch, NONE, 1.1 flexdock.spec, NONE, 1.1 import.log, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: cebbert
Update of /cvs/pkgs/rpms/kernel/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv26013
Modified Files:
.cvsignore config-generic drm-modesetting-radeon.patch
drm-nouveau.patch kernel.spec linux-2.6-hdpvr.patch
linux-2.6.29-lirc.patch sources upstream
Added Files:
patch-2.6.29-rc6-git5.bz2.sign
Removed Files:
patch-2.6.29-rc6-git4.bz2.sign
Log Message:
Linux 2.6.29-rc6-git5
Disable CONFIG_NET_NS because of bug #486889 in rawhide.
Copy lirc and hdpvr updates from rawhide.
--- NEW FILE patch-2.6.29-rc6-git5.bz2.sign ---
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: See http://www.kernel.org/signature.html for info
iD8DBQBJqSe7yGugalF9Dw4RAgvEAJ9pzINSGn0TRDCnN6a5Wf7VfF0C2QCeJZ+Q
2aJRzE3u1fzcyoKdOMTrlVQ=
=Qb5L
-----END PGP SIGNATURE-----
Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/.cvsignore,v
retrieving revision 1.992
retrieving revision 1.993
diff -u -r1.992 -r1.993
--- .cvsignore 27 Feb 2009 06:10:12 -0000 1.992
+++ .cvsignore 1 Mar 2009 02:52:35 -0000 1.993
@@ -6,4 +6,4 @@
kernel-2.6.28
linux-2.6.28.tar.bz2
patch-2.6.29-rc6.bz2
-patch-2.6.29-rc6-git4.bz2
+patch-2.6.29-rc6-git5.bz2
Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/config-generic,v
retrieving revision 1.216
retrieving revision 1.217
diff -u -r1.216 -r1.217
--- config-generic 25 Feb 2009 15:33:30 -0000 1.216
+++ config-generic 1 Mar 2009 02:52:36 -0000 1.217
@@ -47,7 +47,7 @@
CONFIG_PID_NS=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
-CONFIG_NET_NS=y
+# CONFIG_NET_NS is not set
CONFIG_POSIX_MQUEUE=y
# CONFIG_PREEMPT_NONE is not set
@@ -2040,6 +2040,7 @@
CONFIG_W1_MASTER_DS1WM=m
CONFIG_W1_SLAVE_THERM=m
CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2760=m
drm-modesetting-radeon.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.72 -r 1.73 drm-modesetting-radeon.patch
Index: drm-modesetting-radeon.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/drm-modesetting-radeon.patch,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -r1.72 -r1.73
--- drm-modesetting-radeon.patch 23 Feb 2009 16:22:24 -0000 1.72
+++ drm-modesetting-radeon.patch 1 Mar 2009 02:52:36 -0000 1.73
@@ -1,22 +1,98 @@
-commit 465937aec83364d3cf516bc8b6c2ca7f785892d9
+commit 1f756299d935d5a0a4beb82ddeaf0e4b2935861a
+Author: Dave Airlie <airlied at redhat.com>
+Date: Fri Feb 27 15:37:14 2009 +1000
+
+ radeon: disable kms by default for r600
+
+commit e92784bff2fee17c8e47f11753343d99500784a6
+Author: Dave Airlie <airlied at redhat.com>
+Date: Fri Feb 27 11:51:22 2009 +1000
+
+ radeon: fixup proc hacks
+
+commit 8e01de63b0dc4be70fbf8ce33b958d3d4c5d5748
+Author: Dave Airlie <airlied at redhat.com>
+Date: Fri Feb 27 11:51:08 2009 +1000
+
+ radeon: fixup module load
+
+commit 998fa33e12ba50b16e44ad1add5b82ec11aaacfc
+Author: Dave Airlie <airlied at redhat.com>
+Date: Fri Feb 27 11:50:50 2009 +1000
+
+ radeon: fix up ring read/write for new drm-next code
+
+commit 84044ac6eb43ebb861b661aad772be350362dfbe
+Author: Dave Airlie <airlied at redhat.com>
+Date: Fri Feb 27 11:50:24 2009 +1000
+
+ ati_pcigart: update pcigart for changes in drm-next
+
+commit c44d3fa4e174f3aa95ad575e802dd2d01d0615d6
+Author: Dave Airlie <airlied at linux.ie>
+Date: Thu Feb 26 22:27:21 2009 +1000
+
+ radeon: fixup writeback/ring ptrs for Kms
+
+commit 31585bd60335dbc5e6814135add77b2228bdf419
+Author: Dave Airlie <airlied at linux.ie>
+Date: Thu Feb 26 22:00:59 2009 +1000
+
+ radeon: fixup after rebase so it builds
+
+ lots more to do
+
+commit a9c8c80c07d3e08681cfae325e62be775eb621e2
+Author: Dave Airlie <airlied at redhat.com>
+Date: Thu Feb 26 12:03:55 2009 +1000
+
+ drm/radeno: add support for r100 cp type 3 packets
+
+commit 1111b2c28fde03d81663af3a6efa9b362c80189d
+Author: Dave Airlie <airlied at redhat.com>
+Date: Wed Feb 25 16:07:15 2009 +1000
+
+ radeon: fixup cs buffer re-use code to not block straight away
+
+commit 6934826040173ca3022503534b867ba0d0bc7fe3
+Author: Dave Airlie <airlied at redhat.com>
+Date: Wed Feb 25 16:06:30 2009 +1000
+
+ radeon: port CS mutex over from drm.git
+
+ Totally missed this before - really helps stability
+
+commit ae76231f773dfc8cfdf86ddfc9c34de604e07968
+Author: Dave Airlie <airlied at redhat.com>
+Date: Wed Feb 25 13:03:47 2009 +1000
+
+ radeon: fix IB dump end
+
+commit 7ce70adf16692a8b8d34f8ee5018a0b26f99a176
+Author: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
+Date: Tue Feb 24 20:26:53 2009 +1000
+
+ drm/ttm: work around some x86 pat oddities by using mixedmap instead of pfnmap
+
+commit bc61dd6a56ae8678dd0a68074fce63a9b58f6039
Author: Dave Airlie <airlied at redhat.com>
Date: Sun Feb 22 08:22:14 2009 +1000
radeon: add module IDs
-commit dd6dc3d83534ae6ae908629cfe0d1a784e073102
+commit 2cb426ab76242230ee66c62ca56346f20dda7322
Author: Dave Airlie <airlied at redhat.com>
Date: Sun Feb 22 08:19:33 2009 +1000
radeon: fixup for new APIs
-commit a93e118253bdf74092233dbc21d3e257688f39c8
+commit a9156df0c323939c6a61fcf4894dc160e71b7178
Author: Dave Airlie <airlied at redhat.com>
Date: Sun Feb 22 08:11:33 2009 +1000
drm: fix parmeter passed to fb_release
-commit 2b6628ce5e481e1ff5a30d8957d7b32fd5b4d1e1
+commit 0260fc0c5544220072074582c40e3807380a40d2
Author: Dave Airlie <airlied at redhat.com>
Date: Wed Feb 18 17:36:33 2009 +1000
@@ -24,13 +100,13 @@
this adds basic IB dumping and cleans up some code around it.
-commit cb1fedbb2df6da2f104a026c7846dfc91564e2f7
+commit 693ea916ff5f7e94cb766ff3326256304a10c282
Author: Dave Airlie <airlied at redhat.com>
Date: Wed Feb 18 11:12:19 2009 +1000
radeon: fix packet2 parsing + enhance debug
-commit c3e00f3af01659590ef278d822ef0a727faf4f71
+commit d70737eeb6002581984d34073bcfce246914ee49
Author: Dave Airlie <airlied at redhat.com>
Date: Wed Feb 18 11:11:39 2009 +1000
@@ -41,37 +117,37 @@
It also doesn't or in the table values but sets them
-commit c4c20e2f1e60bb507e1b2c5f1e9d2c26497df171
+commit 5efc94678c2535fa8640d6ff13a382b2de593175
Author: Dave Airlie <airlied at redhat.com>
Date: Tue Feb 17 20:57:34 2009 +1000
radeon/i2c: i2c adapter id is gone
-commit c15cf36a1ecd6ddc99c453d4fbf0b88a812c8f72
+commit 06f9316ec64614270971e9f383da9841097c6897
Author: Dave Airlie <airlied at redhat.com>
Date: Thu Jan 22 17:15:56 2009 +1000
drm: fix radeon Kconfig
-commit 36e00f39abecac799b7d53122e35ec1098245c45
+commit 6185b5baf2dea5433b9bea369e0303641c12a397
Author: Dave Airlie <airlied at redhat.com>
Date: Sun Jan 11 19:50:23 2009 +1000
radeon: add missing Kconfig text
-commit d7d278645bf22fa609a3442bd105539e67977f39
+commit 5da904a88e52d5fa0ed88f0711e5901e150185f4
Author: Dave Airlie <airlied at redhat.com>
Date: Sun Jan 11 19:47:39 2009 +1000
drm: fix merge issue that messes up irq
-commit cad74b7853b75c0e10b2958d933518921e194265
+commit c8f0b003060f81347b5efd95f6b9ea61896e823c
Author: Dave Airlie <airlied at redhat.com>
Date: Sat Jan 10 12:40:42 2009 +1000
radeon: add getparam to get pci device from userspace
-commit 97859845b7216b86003a1bb0533d1f5cf43a0c04
+commit 0dd95dc27b9e1b4734a07ffdb3edef67069f9743
Author: Dave Airlie <airlied at redhat.com>
Date: Thu Dec 18 23:01:12 2008 +1000
@@ -80,49 +156,49 @@
This should make AGP no corrupt itself to all buggery
(cherry picked from commit 55c0a3f1d3693cb5c3b65f37d4bb6e8a3c025460)
-commit 5b1ded493702a6807d0e6718fe17a78b573cdd36
+commit e08687047ae2904ad9a7f18d5c4a0ccae29727d3
Author: Dave Airlie <airlied at redhat.com>
Date: Tue Dec 2 16:38:04 2008 +1000
drop old CS
-commit 5a569665167ed400fbef07ff5ce6fb106a2d3576
+commit 00a936a692a1ff6bf365f0af46afc9e828fb989f
Author: Dave Airlie <airlied at redhat.com>
Date: Mon Dec 1 15:09:27 2008 +1000
radeon: update with latest CS bits
-commit 19518b82b4fc4fb0b2093efb29658e36169b7c0a
+commit 95af07dde6539c225de4209c05db273e880ea576
Author: Dave Airlie <airlied at redhat.com>
Date: Wed Dec 17 06:56:36 2008 +1000
fixups post rebase
-commit 2d40852fce298ef27f2983a5d3aa0259ab3c0022
+commit 8a5f2de67ec28fcc7405ce21e2a7ef096e272144
Author: Dave Airlie <airlied at redhat.com>
Date: Thu Dec 11 01:35:09 2008 +1000
[...3731 lines suppressed...]
}
break;
case RADEON_SETPARAM_PCIGART_LOCATION:
@@ -35091,7 +35060,7 @@
dev_priv->gart_info.table_size = sp->value;
if (dev_priv->gart_info.table_size < RADEON_PCIGART_TABLE_SIZE)
dev_priv->gart_info.table_size = RADEON_PCIGART_TABLE_SIZE;
-@@ -3127,6 +3153,14 @@ static int radeon_cp_setparam(struct drm_device *dev, void *data, struct drm_fil
+@@ -3137,6 +3163,14 @@ static int radeon_cp_setparam(struct drm_device *dev, void *data, struct drm_fil
case RADEON_SETPARAM_VBLANK_CRTC:
return radeon_vblank_crtc_set(dev, sp->value);
break;
@@ -35106,7 +35075,7 @@
default:
DRM_DEBUG("Invalid parameter %d\n", sp->param);
return -EINVAL;
-@@ -3215,7 +3249,19 @@ struct drm_ioctl_desc radeon_ioctls[] = {
+@@ -3226,7 +3260,19 @@ struct drm_ioctl_desc radeon_ioctls[] = {
DRM_IOCTL_DEF(DRM_RADEON_IRQ_WAIT, radeon_irq_wait, DRM_AUTH),
DRM_IOCTL_DEF(DRM_RADEON_SETPARAM, radeon_cp_setparam, DRM_AUTH),
DRM_IOCTL_DEF(DRM_RADEON_SURF_ALLOC, radeon_surface_alloc, DRM_AUTH),
@@ -35140,7 +35109,7 @@
/**
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
-index e5f4ae9..c963f25 100644
+index ccbcd13..99e348d 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -147,9 +147,23 @@ struct drm_device;
@@ -35167,7 +35136,7 @@
/*@}*/
-@@ -652,6 +666,8 @@ struct drm_master {
+@@ -665,6 +679,8 @@ struct drm_master {
void *driver_priv; /**< Private structure for driver to use */
};
@@ -35176,7 +35145,7 @@
/**
* DRM driver structure. This structure represent the common code for
* a family of cards. There will one drm_device for each card present
-@@ -770,6 +786,8 @@ struct drm_driver {
+@@ -784,6 +800,8 @@ struct drm_driver {
/* Driver private ops for this object */
struct vm_operations_struct *gem_vm_ops;
@@ -35185,7 +35154,7 @@
int major;
int minor;
-@@ -845,7 +863,10 @@ struct drm_device {
+@@ -906,7 +924,10 @@ struct drm_device {
/*@{ */
struct list_head maplist; /**< Linked list of regions */
int map_count; /**< Number of mappable regions */
@@ -35197,7 +35166,7 @@
/** \name Context handle management */
/*@{ */
-@@ -856,6 +877,7 @@ struct drm_device {
+@@ -917,6 +938,7 @@ struct drm_device {
struct idr ctx_idr;
struct list_head vmalist; /**< List of vmas (for debugging) */
@@ -35205,7 +35174,7 @@
/*@} */
-@@ -927,7 +949,6 @@ struct drm_device {
+@@ -988,7 +1010,6 @@ struct drm_device {
int num_crtcs; /**< Number of CRTCs on this device */
void *dev_private; /**< device private data */
void *mm_private;
@@ -35213,7 +35182,7 @@
struct drm_sigdata sigdata; /**< For block_all_signals */
sigset_t sigmask;
-@@ -937,6 +958,9 @@ struct drm_device {
+@@ -998,6 +1019,9 @@ struct drm_device {
struct drm_minor *control; /**< Control node for card */
struct drm_minor *primary; /**< render type primary screen head */
@@ -35223,7 +35192,7 @@
/** \name Drawable information */
/*@{ */
spinlock_t drw_lock;
-@@ -959,8 +983,28 @@ struct drm_device {
+@@ -1020,8 +1044,28 @@ struct drm_device {
uint32_t invalidate_domains; /* domains pending invalidation */
uint32_t flush_domains; /* domains pending flush */
/*@} */
@@ -35252,7 +35221,7 @@
static inline int drm_dev_to_irq(struct drm_device *dev)
{
-@@ -1070,6 +1114,17 @@ extern DRM_AGP_MEM *drm_agp_bind_pages(struct drm_device *dev,
+@@ -1131,6 +1175,17 @@ extern DRM_AGP_MEM *drm_agp_bind_pages(struct drm_device *dev,
uint32_t type);
extern int drm_unbind_agp(DRM_AGP_MEM * handle);
@@ -35270,7 +35239,7 @@
/* Misc. IOCTL support (drm_ioctl.h) */
extern int drm_irq_by_busid(struct drm_device *dev, void *data,
struct drm_file *file_priv);
-@@ -1240,6 +1295,7 @@ extern DRM_AGP_MEM *drm_agp_allocate_memory(struct agp_bridge_data *bridge, size
+@@ -1301,6 +1356,7 @@ extern DRM_AGP_MEM *drm_agp_allocate_memory(struct agp_bridge_data *bridge, size
extern int drm_agp_free_memory(DRM_AGP_MEM * handle);
extern int drm_agp_bind_memory(DRM_AGP_MEM * handle, off_t start);
extern int drm_agp_unbind_memory(DRM_AGP_MEM * handle);
@@ -35278,7 +35247,7 @@
extern void drm_agp_chipset_flush(struct drm_device *dev);
/* Stub support (drm_stub.h) */
-@@ -1281,6 +1337,8 @@ extern int drm_ati_pcigart_init(struct drm_device *dev,
+@@ -1368,6 +1424,8 @@ extern int drm_ati_pcigart_init(struct drm_device *dev,
struct drm_ati_pcigart_info * gart_info);
extern int drm_ati_pcigart_cleanup(struct drm_device *dev,
struct drm_ati_pcigart_info * gart_info);
@@ -35287,7 +35256,7 @@
extern drm_dma_handle_t *drm_pci_alloc(struct drm_device *dev, size_t size,
size_t align, dma_addr_t maxaddr);
-@@ -1438,6 +1496,39 @@ extern void drm_free(void *pt, size_t size, int area);
+@@ -1525,6 +1583,39 @@ extern void drm_free(void *pt, size_t size, int area);
extern void *drm_calloc(size_t nmemb, size_t size, int area);
#endif
@@ -35328,10 +35297,10 @@
#endif /* __KERNEL__ */
diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h
-index 0b0d236..cb3952c 100644
+index c7d4b2e..3091fc3 100644
--- a/include/drm/drm_crtc_helper.h
+++ b/include/drm/drm_crtc_helper.h
-@@ -121,4 +121,6 @@ static inline void drm_connector_helper_add(struct drm_connector *connector,
+@@ -122,4 +122,6 @@ static inline void drm_connector_helper_add(struct drm_connector *connector,
}
extern int drm_helper_resume_force_mode(struct drm_device *dev);
@@ -36290,10 +36259,10 @@
* on the security mechanisms provided by hardware.
*/
diff --git a/include/drm/radeon_drm.h b/include/drm/radeon_drm.h
-index 73ff51f..1f67a11 100644
+index 937a275..f716e0a 100644
--- a/include/drm/radeon_drm.h
+++ b/include/drm/radeon_drm.h
-@@ -453,6 +453,15 @@ typedef struct {
+@@ -455,6 +455,15 @@ typedef struct {
int pfCurrentPage; /* which buffer is being displayed? */
int crtc2_base; /* CRTC2 frame offset */
int tiling_enabled; /* set by drm, read by 2d + 3d clients */
@@ -36309,7 +36278,7 @@
} drm_radeon_sarea_t;
/* WARNING: If you change any of these defines, make sure to change the
-@@ -493,6 +502,18 @@ typedef struct {
+@@ -495,6 +504,18 @@ typedef struct {
#define DRM_RADEON_SURF_ALLOC 0x1a
#define DRM_RADEON_SURF_FREE 0x1b
@@ -36328,7 +36297,7 @@
#define DRM_IOCTL_RADEON_CP_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_INIT, drm_radeon_init_t)
#define DRM_IOCTL_RADEON_CP_START DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_CP_START)
#define DRM_IOCTL_RADEON_CP_STOP DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_STOP, drm_radeon_cp_stop_t)
-@@ -521,6 +542,18 @@ typedef struct {
+@@ -523,6 +544,18 @@ typedef struct {
#define DRM_IOCTL_RADEON_SURF_ALLOC DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SURF_ALLOC, drm_radeon_surface_alloc_t)
#define DRM_IOCTL_RADEON_SURF_FREE DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SURF_FREE, drm_radeon_surface_free_t)
@@ -36347,7 +36316,7 @@
typedef struct drm_radeon_init {
enum {
RADEON_INIT_CP = 0x01,
-@@ -677,6 +710,8 @@ typedef struct drm_radeon_indirect {
+@@ -680,6 +713,8 @@ typedef struct drm_radeon_indirect {
#define RADEON_PARAM_VBLANK_CRTC 13 /* VBLANK CRTC */
#define RADEON_PARAM_FB_LOCATION 14 /* FB location */
#define RADEON_PARAM_NUM_GB_PIPES 15 /* num GB pipes */
@@ -36356,7 +36325,7 @@
typedef struct drm_radeon_getparam {
int param;
-@@ -731,6 +766,7 @@ typedef struct drm_radeon_setparam {
+@@ -734,6 +769,7 @@ typedef struct drm_radeon_setparam {
#define RADEON_SETPARAM_NEW_MEMMAP 4 /* Use new memory map */
#define RADEON_SETPARAM_PCIGART_TABLE_SIZE 5 /* PCI GART Table Size */
#define RADEON_SETPARAM_VBLANK_CRTC 6 /* VBLANK CRTC */
@@ -36364,7 +36333,7 @@
/* 1.14: Clients can allocate/free a surface
*/
typedef struct drm_radeon_surface_alloc {
-@@ -746,4 +782,106 @@ typedef struct drm_radeon_surface_free {
+@@ -749,4 +785,106 @@ typedef struct drm_radeon_surface_free {
#define DRM_RADEON_VBLANK_CRTC1 1
#define DRM_RADEON_VBLANK_CRTC2 2
drm-nouveau.patch:
Index: drm-nouveau.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/drm-nouveau.patch,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- drm-nouveau.patch 11 Feb 2009 04:51:28 -0000 1.9
+++ drm-nouveau.patch 1 Mar 2009 02:52:37 -0000 1.10
@@ -23,28 +23,26 @@
+obj-$(CONFIG_DRM_NOUVEAU) += nouveau/
diff --git a/drivers/gpu/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c
-index 9ed8259..ed46425 100644
+index 445c762..a528dc9 100644
--- a/drivers/gpu/drm/drm_bufs.c
+++ b/drivers/gpu/drm/drm_bufs.c
-@@ -49,8 +49,8 @@ unsigned long drm_get_resource_len(struct drm_device *dev, unsigned int resource
+@@ -51,7 +51,7 @@ resource_size_t drm_get_resource_len(struct drm_device *dev, unsigned int resour
EXPORT_SYMBOL(drm_get_resource_len);
-static struct drm_map_list *drm_find_matching_map(struct drm_device *dev,
-- drm_local_map_t *map)
+struct drm_map_list *drm_find_matching_map(struct drm_device *dev,
-+ drm_local_map_t *map)
+ struct drm_local_map *map)
{
struct drm_map_list *entry;
- list_for_each_entry(entry, &dev->maplist, head) {
-@@ -63,6 +63,7 @@ static struct drm_map_list *drm_find_matching_map(struct drm_device *dev,
+@@ -83,6 +83,7 @@ static struct drm_map_list *drm_find_matching_map(struct drm_device *dev,
return NULL;
}
+EXPORT_SYMBOL(drm_find_matching_map);
static int drm_map_handle(struct drm_device *dev, struct drm_hash_item *hash,
- unsigned long user_token, int hashed_handle)
+ unsigned long user_token, int hashed_handle, int shm)
diff --git a/drivers/gpu/drm/nouveau/Makefile b/drivers/gpu/drm/nouveau/Makefile
new file mode 100644
index 0000000..557f04e
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/kernel.spec,v
retrieving revision 1.1279
retrieving revision 1.1280
diff -u -r1.1279 -r1.1280
--- kernel.spec 27 Feb 2009 06:10:12 -0000 1.1279
+++ kernel.spec 1 Mar 2009 02:52:38 -0000 1.1280
@@ -57,7 +57,7 @@
# The rc snapshot level
%define rcrev 6
# The git snapshot level
-%define gitrev 4
+%define gitrev 5
# Set rpm version accordingly
%define rpmversion 2.6.%{upstream_sublevel}
%endif
@@ -636,6 +636,7 @@
Patch1550: linux-2.6-cdrom-door-status.patch
# nouveau + drm fixes
+Patch1811: drm-next.patch
Patch1812: drm-modesetting-radeon.patch
Patch1814: drm-nouveau.patch
Patch1816: drm-no-gem-on-i8xx.patch
@@ -1168,6 +1169,7 @@
ApplyPatch linux-2.6-net-tulip-interrupt.patch
# Nouveau DRM + drm fixes
+ApplyPatch drm-next.patch
ApplyPatch drm-modesetting-radeon.patch
ApplyPatch drm-nouveau.patch
ApplyPatch drm-no-gem-on-i8xx.patch
@@ -1765,6 +1767,11 @@
%kernel_variant_files -k vmlinux %{with_kdump} kdump
%changelog
+* Sat Feb 28 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.29-0.50.rc6.git5
+- Linux 2.6.29-rc6-git5
+- Disable CONFIG_NET_NS because of bug #486889 in rawhide.
+- Copy lirc and hdpvr updates from rawhide.
+
* Fri Feb 27 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.29-0.49.rc6.git4
- Linux 2.6.29-rc6-git4
linux-2.6-hdpvr.patch:
Index: linux-2.6-hdpvr.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/linux-2.6-hdpvr.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- linux-2.6-hdpvr.patch 29 Jan 2009 21:14:11 -0000 1.3
+++ linux-2.6-hdpvr.patch 1 Mar 2009 02:52:38 -0000 1.4
@@ -1,3 +1,24 @@
+Video capture driver for the Hauppauge HD PVR
+
+upstream: http://hg.jannau.net/hdpvr/
+product info: http://hauppauge.com/site/products/data_hdpvr.html
+
+Signed-off-by: Jarod Wilson <jarod at redhat.com>
+
+---
+ drivers/media/video/Kconfig | 2 +
+ drivers/media/video/Makefile | 2 +
+ drivers/media/video/hdpvr/Kconfig | 10 +
+ drivers/media/video/hdpvr/Makefile | 7 +
+ drivers/media/video/hdpvr/hdpvr-control.c | 212 +++++
+ drivers/media/video/hdpvr/hdpvr-core.c | 461 +++++++++++
+ drivers/media/video/hdpvr/hdpvr-i2c.c | 145 ++++
+ drivers/media/video/hdpvr/hdpvr-video.c | 1258 +++++++++++++++++++++++++++++
+ drivers/media/video/hdpvr/hdpvr.h | 326 ++++++++
+ drivers/media/video/v4l2-common.c | 3 +
+ include/linux/i2c-id.h | 1 +
+ 11 files changed, 2427 insertions(+), 0 deletions(-)
+
diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
index 19cf3b8..4f29e1a 100644
--- a/drivers/media/video/Kconfig
@@ -12,18 +33,18 @@
source "drivers/media/video/usbvision/Kconfig"
diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
-index 72f6d03..35ff442 100644
+index 72f6d03..e7e4508 100644
--- a/drivers/media/video/Makefile
+++ b/drivers/media/video/Makefile
-@@ -122,6 +122,8 @@ obj-$(CONFIG_USB_PWC) += pwc/
- obj-$(CONFIG_USB_ZC0301) += zc0301/
- obj-$(CONFIG_USB_GSPCA) += gspca/
+@@ -128,6 +128,8 @@ obj-$(CONFIG_USB_VICAM) += usbvideo/
+ obj-$(CONFIG_USB_QUICKCAM_MESSENGER) += usbvideo/
+ obj-$(CONFIG_USB_S2255) += s2255drv.o
-+obj-$(CONFIG_VIDEO_HDPVR) += hdpvr/
++obj-$(CONFIG_VIDEO_HDPVR) += hdpvr/
+
- obj-$(CONFIG_USB_IBMCAM) += usbvideo/
- obj-$(CONFIG_USB_KONICAWC) += usbvideo/
- obj-$(CONFIG_USB_VICAM) += usbvideo/
+ obj-$(CONFIG_VIDEO_IVTV) += ivtv/
+ obj-$(CONFIG_VIDEO_CX18) += cx18/
+
diff --git a/drivers/media/video/hdpvr/Kconfig b/drivers/media/video/hdpvr/Kconfig
new file mode 100644
index 0000000..de247f3
@@ -273,10 +294,10 @@
+}
diff --git a/drivers/media/video/hdpvr/hdpvr-core.c b/drivers/media/video/hdpvr/hdpvr-core.c
new file mode 100644
-index 0000000..19e5282
+index 0000000..394309a
--- /dev/null
+++ b/drivers/media/video/hdpvr/hdpvr-core.c
-@@ -0,0 +1,455 @@
+@@ -0,0 +1,461 @@
+/*
+ * Hauppage HD PVR USB driver
+ *
@@ -336,6 +357,8 @@
+/* table of devices that work with this driver */
+static struct usb_device_id hdpvr_table [] = {
+ { USB_DEVICE(HD_PVR_VENDOR_ID, HD_PVR_PRODUCT_ID) },
++ { USB_DEVICE(HD_PVR_VENDOR_ID, HD_PVR_PRODUCT_ID1) },
++ { USB_DEVICE(HD_PVR_VENDOR_ID, HD_PVR_PRODUCT_ID2) },
+ { } /* Terminating entry */
+};
+MODULE_DEVICE_TABLE(usb, hdpvr_table);
@@ -452,6 +475,10 @@
+ dev->flags &= ~HDPVR_FLAG_AC3_CAP;
+ } else if (buf[1] == HDPVR_FIRMWARE_VERSION_AC3) {
+ dev->flags |= HDPVR_FLAG_AC3_CAP;
++ } else if (buf[1] > HDPVR_FIRMWARE_VERSION_AC3) {
++ hdpvr_print("untested firmware version 0x%x, the driver might "
++ "not work", buf[1]);
++ dev->flags |= HDPVR_FLAG_AC3_CAP;
+ } else {
+ hdpvr_err("unknown firmware version 0x%x", buf[1]);
+ ret = -EINVAL;
@@ -885,7 +912,7 @@
+}
diff --git a/drivers/media/video/hdpvr/hdpvr-video.c b/drivers/media/video/hdpvr/hdpvr-video.c
new file mode 100644
-index 0000000..0297f91
+index 0000000..33788d0
--- /dev/null
+++ b/drivers/media/video/hdpvr/hdpvr-video.c
@@ -0,0 +1,1258 @@
@@ -1253,7 +1280,7 @@
+ return retval;
+}
+
-+#if 0
++
+static void hdpvr_draw_down(struct hdpvr_device *dev)
+{
+ hdpvr_trace("status = %d", dev->status);
@@ -1279,7 +1306,6 @@
+
+ return 0;
+}
-+#endif
+
+static int hdpvr_release(struct file *file)
+{
@@ -1456,8 +1482,7 @@
+}
+
+
-+static long hdpvr_ioctl(struct file *filp, unsigned int cmd,
-+ unsigned long arg)
++static long hdpvr_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
+{
+ struct hdpvr_fh *fh = (struct hdpvr_fh *)filp->private_data;
+ struct hdpvr_device *dev = fh->dev;
@@ -1501,10 +1526,9 @@
+ .owner = THIS_MODULE,
+ .open = hdpvr_open,
+ .release = hdpvr_release,
-+/* .flush = hdpvr_flush, */
+ .read = hdpvr_read,
+ .poll = hdpvr_poll,
-+ .ioctl = hdpvr_ioctl,
++ .unlocked_ioctl = hdpvr_ioctl,
+};
+
+/*=======================================================================*/
@@ -1515,8 +1539,11 @@
+static int vidioc_querycap(struct file *file, void *priv,
+ struct v4l2_capability *cap)
+{
++ struct hdpvr_device *dev = video_drvdata(file);
++
+ strcpy(cap->driver, "hdpvr");
+ strcpy(cap->card, "Haupauge HD PVR");
++ usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info));
+ cap->version = HDPVR_VERSION;
+ cap->capabilities = V4L2_CAP_VIDEO_CAPTURE |
+ V4L2_CAP_AUDIO |
@@ -2149,10 +2176,10 @@
+}
diff --git a/drivers/media/video/hdpvr/hdpvr.h b/drivers/media/video/hdpvr/hdpvr.h
new file mode 100644
-index 0000000..ffe3a36
+index 0000000..1514742
--- /dev/null
+++ b/drivers/media/video/hdpvr/hdpvr.h
-@@ -0,0 +1,324 @@
+@@ -0,0 +1,326 @@
+/*
+ * Hauppage HD PVR USB driver
+ *
@@ -2180,6 +2207,8 @@
+/* Define these values to match your devices */
+#define HD_PVR_VENDOR_ID 0x2040
+#define HD_PVR_PRODUCT_ID 0x4900
++#define HD_PVR_PRODUCT_ID1 0x4901
++#define HD_PVR_PRODUCT_ID2 0x4902
+
+#define UNSET (-1U)
+
linux-2.6.29-lirc.patch:
Index: linux-2.6.29-lirc.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/linux-2.6.29-lirc.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6.29-lirc.patch 30 Jan 2009 21:21:41 -0000 1.2
+++ linux-2.6.29-lirc.patch 1 Mar 2009 02:52:38 -0000 1.3
@@ -1,30 +1,55 @@
+Linux Infrared Remote Control drivers (http://www.lirc.org/)
+
+Signed-off-by: Jarod Wilson <jarod at redhat.com>
+
+---
+ MAINTAINERS | 9 +
drivers/input/Kconfig | 2 +
drivers/input/Makefile | 2 +
drivers/input/lirc/Kconfig | 118 +++
drivers/input/lirc/Makefile | 21 +
drivers/input/lirc/lirc.h | 100 +++
drivers/input/lirc/lirc_bt829.c | 381 +++++++++
- drivers/input/lirc/lirc_dev.c | 754 ++++++++++++++++++
- drivers/input/lirc/lirc_dev.h | 178 +++++
- drivers/input/lirc/lirc_i2c.c | 649 ++++++++++++++++
- drivers/input/lirc/lirc_igorplugusb.c | 554 +++++++++++++
- drivers/input/lirc/lirc_imon.c | 1369 ++++++++++++++++++++++++++++++++
- drivers/input/lirc/lirc_it87.c | 984 +++++++++++++++++++++++
+ drivers/input/lirc/lirc_dev.c | 853 +++++++++++++++++++
+ drivers/input/lirc/lirc_dev.h | 180 ++++
+ drivers/input/lirc/lirc_i2c.c | 649 +++++++++++++++
+ drivers/input/lirc/lirc_igorplugusb.c | 555 +++++++++++++
+ drivers/input/lirc/lirc_imon.c | 1459 +++++++++++++++++++++++++++++++++
+ drivers/input/lirc/lirc_it87.c | 984 ++++++++++++++++++++++
drivers/input/lirc/lirc_it87.h | 116 +++
- drivers/input/lirc/lirc_ite8709.c | 539 +++++++++++++
- drivers/input/lirc/lirc_mceusb.c | 784 +++++++++++++++++++
- drivers/input/lirc/lirc_mceusb2.c | 1119 ++++++++++++++++++++++++++
- drivers/input/lirc/lirc_parallel.c | 709 +++++++++++++++++
+ drivers/input/lirc/lirc_ite8709.c | 539 ++++++++++++
+ drivers/input/lirc/lirc_mceusb.c | 747 +++++++++++++++++
+ drivers/input/lirc/lirc_mceusb2.c | 1097 +++++++++++++++++++++++++
+ drivers/input/lirc/lirc_parallel.c | 709 ++++++++++++++++
drivers/input/lirc/lirc_parallel.h | 26 +
- drivers/input/lirc/lirc_sasem.c | 933 ++++++++++++++++++++++
- drivers/input/lirc/lirc_serial.c | 1321 +++++++++++++++++++++++++++++++
- drivers/input/lirc/lirc_sir.c | 1294 ++++++++++++++++++++++++++++++
- drivers/input/lirc/lirc_streamzap.c | 772 ++++++++++++++++++
- drivers/input/lirc/lirc_ttusbir.c | 396 ++++++++++
- drivers/input/lirc/lirc_zilog.c | 1382 +++++++++++++++++++++++++++++++++
-
- 24 files changed, 14503 insertions(+), 0 deletions(-)
+ drivers/input/lirc/lirc_sasem.c | 933 +++++++++++++++++++++
+ drivers/input/lirc/lirc_serial.c | 1321 +++++++++++++++++++++++++++++
+ drivers/input/lirc/lirc_sir.c | 1294 +++++++++++++++++++++++++++++
+ drivers/input/lirc/lirc_streamzap.c | 773 +++++++++++++++++
+ drivers/input/lirc/lirc_ttusbir.c | 398 +++++++++
+ drivers/input/lirc/lirc_zilog.c | 1382 +++++++++++++++++++++++++++++++
+ 25 files changed, 14648 insertions(+), 0 deletions(-)
+diff --git a/MAINTAINERS b/MAINTAINERS
+index 59fd2d1..ad1b16c 100644
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -2749,6 +2749,15 @@ W: http://www.pasemi.com/
+ L: linuxppc-dev at ozlabs.org
+ S: Supported
+
++LINUX INFRARED REMOTE CONTROL DRIVERS (LIRC)
++P: Jarod Wilson
++M: jarod at redhat.com
++P: Christoph Bartelmus
++M: lirc at bartelmus.de
++W: http://www.lirc.org/
++L: lirc-list at lists.sourceforge.net
++S: Maintained
++
+ LINUX SECURITY MODULE (LSM) FRAMEWORK
+ P: Chris Wright
+ M: chrisw at sous-sol.org
diff --git a/drivers/input/Kconfig b/drivers/input/Kconfig
index 5f9d860..2ba0904 100644
--- a/drivers/input/Kconfig
@@ -39,7 +64,7 @@
endif
diff --git a/drivers/input/Makefile b/drivers/input/Makefile
-index 98c4f9a..6a1049b 100644
+index 4c9c745..99e2b5e 100644
--- a/drivers/input/Makefile
+++ b/drivers/input/Makefile
@@ -25,3 +25,5 @@ obj-$(CONFIG_INPUT_MISC) += misc/
@@ -201,7 +226,7 @@
+obj-$(CONFIG_LIRC_ZILOG) += lirc_zilog.o
diff --git a/drivers/input/lirc/lirc.h b/drivers/input/lirc/lirc.h
new file mode 100644
-index 0000000..b6d124e
+index 0000000..599b21c
--- /dev/null
+++ b/drivers/input/lirc/lirc.h
@@ -0,0 +1,100 @@
@@ -270,27 +295,27 @@
+
+/*** IOCTL commands for lirc driver ***/
+
-+#define LIRC_GET_FEATURES _IOR('i', 0x00000000, __u32)
++#define LIRC_GET_FEATURES _IOR('i', 0x00000000, unsigned long)
+
-+#define LIRC_GET_SEND_MODE _IOR('i', 0x00000001, __u32)
-+#define LIRC_GET_REC_MODE _IOR('i', 0x00000002, __u32)
-+#define LIRC_GET_SEND_CARRIER _IOR('i', 0x00000003, __u32)
-+#define LIRC_GET_REC_CARRIER _IOR('i', 0x00000004, __u32)
-+#define LIRC_GET_SEND_DUTY_CYCLE _IOR('i', 0x00000005, __u32)
-+#define LIRC_GET_REC_DUTY_CYCLE _IOR('i', 0x00000006, __u32)
-+#define LIRC_GET_REC_RESOLUTION _IOR('i', 0x00000007, __u32)
++#define LIRC_GET_SEND_MODE _IOR('i', 0x00000001, unsigned long)
++#define LIRC_GET_REC_MODE _IOR('i', 0x00000002, unsigned long)
++#define LIRC_GET_SEND_CARRIER _IOR('i', 0x00000003, unsigned int)
++#define LIRC_GET_REC_CARRIER _IOR('i', 0x00000004, unsigned int)
++#define LIRC_GET_SEND_DUTY_CYCLE _IOR('i', 0x00000005, unsigned int)
++#define LIRC_GET_REC_DUTY_CYCLE _IOR('i', 0x00000006, unsigned int)
++#define LIRC_GET_REC_RESOLUTION _IOR('i', 0x00000007, unsigned int)
+
+/* code length in bits, currently only for LIRC_MODE_LIRCCODE */
-+#define LIRC_GET_LENGTH _IOR('i', 0x0000000f, __u32)
++#define LIRC_GET_LENGTH _IOR('i', 0x0000000f, unsigned long)
+
-+#define LIRC_SET_SEND_MODE _IOW('i', 0x00000011, __u32)
-+#define LIRC_SET_REC_MODE _IOW('i', 0x00000012, __u32)
++#define LIRC_SET_SEND_MODE _IOW('i', 0x00000011, unsigned long)
++#define LIRC_SET_REC_MODE _IOW('i', 0x00000012, unsigned long)
+/* Note: these can reset the according pulse_width */
-+#define LIRC_SET_SEND_CARRIER _IOW('i', 0x00000013, __u32)
-+#define LIRC_SET_REC_CARRIER _IOW('i', 0x00000014, __u32)
-+#define LIRC_SET_SEND_DUTY_CYCLE _IOW('i', 0x00000015, __u32)
-+#define LIRC_SET_REC_DUTY_CYCLE _IOW('i', 0x00000016, __u32)
-+#define LIRC_SET_TRANSMITTER_MASK _IOW('i', 0x00000017, __u32)
++#define LIRC_SET_SEND_CARRIER _IOW('i', 0x00000013, unsigned int)
++#define LIRC_SET_REC_CARRIER _IOW('i', 0x00000014, unsigned int)
++#define LIRC_SET_SEND_DUTY_CYCLE _IOW('i', 0x00000015, unsigned int)
++#define LIRC_SET_REC_DUTY_CYCLE _IOW('i', 0x00000016, unsigned int)
++#define LIRC_SET_TRANSMITTER_MASK _IOW('i', 0x00000017, unsigned int)
+
+/*
+ * to set a range use
@@ -299,15 +324,15 @@
+ * LIRC_SET_REC_DUTY_CYCLE/LIRC_SET_REC_CARRIER with the upper bound
+ */
+
-+#define LIRC_SET_REC_DUTY_CYCLE_RANGE _IOW('i', 0x0000001e, __u32)
-+#define LIRC_SET_REC_CARRIER_RANGE _IOW('i', 0x0000001f, __u32)
++#define LIRC_SET_REC_DUTY_CYCLE_RANGE _IOW('i', 0x0000001e, unsigned int)
++#define LIRC_SET_REC_CARRIER_RANGE _IOW('i', 0x0000001f, unsigned int)
+
+#define LIRC_NOTIFY_DECODE _IO('i', 0x00000020)
+
+#endif
diff --git a/drivers/input/lirc/lirc_bt829.c b/drivers/input/lirc/lirc_bt829.c
new file mode 100644
-index 0000000..581f6e2
+index 0000000..7981849
--- /dev/null
+++ b/drivers/input/lirc/lirc_bt829.c
@@ -0,0 +1,381 @@
@@ -690,14 +715,14 @@
+MODULE_DESCRIPTION("IR remote driver for bt829 based TV cards");
+MODULE_LICENSE("GPL");
+
-+module_param(debug, bool, 0644);
++module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Debug enabled or not");
diff --git a/drivers/input/lirc/lirc_dev.c b/drivers/input/lirc/lirc_dev.c
new file mode 100644
-index 0000000..e7b52c4
+index 0000000..dddd999
--- /dev/null
+++ b/drivers/input/lirc/lirc_dev.c
-@@ -0,0 +1,754 @@
+@@ -0,0 +1,853 @@
+/*
+ * LIRC base driver
+ *
@@ -735,6 +760,10 @@
+#include <linux/bitops.h>
+#include <linux/device.h>
+#include <linux/cdev.h>
++#include <linux/smp_lock.h>
++#ifdef CONFIG_COMPAT
++#include <linux/compat.h>
++#endif
+
+#include "lirc.h"
+#include "lirc_dev.h"
@@ -861,6 +890,9 @@
+ .write = lirc_dev_fop_write,
+ .poll = lirc_dev_fop_poll,
+ .ioctl = lirc_dev_fop_ioctl,
++#ifdef CONFIG_COMPAT
++ .compat_ioctl = lirc_dev_fop_compat_ioctl,
++#endif
+ .open = lirc_dev_fop_open,
+ .release = lirc_dev_fop_close,
+ .owner = THIS_MODULE,
@@ -1000,9 +1032,8 @@
+ d->name[sizeof(d->name)-1] = '\0';
+
+ bytes_in_key = BITS_TO_LONGS(d->code_length);
-+
-+ chunk_size = d->chunk_size ? d->chunk_size : bytes_in_key;
+ buffer_size = d->buffer_size ? d->buffer_size : BUFLEN / bytes_in_key;
++ chunk_size = d->chunk_size ? d->chunk_size : bytes_in_key;
+
+ if (d->rbuf) {
+ ir->buf = d->rbuf;
@@ -1277,8 +1308,7 @@
+ */
+ break;
+ case LIRC_GET_LENGTH:
-+ result = put_user((unsigned long)ir->d.code_length,
-+ (unsigned long *)arg);
++ result = put_user(ir->d.code_length, (unsigned long *)arg);
+ break;
+ default:
+ result = -EINVAL;
@@ -1291,6 +1321,100 @@
+}
+EXPORT_SYMBOL(lirc_dev_fop_ioctl);
+
++#ifdef CONFIG_COMPAT
++#define LIRC_GET_FEATURES_COMPAT32 _IOR('i', 0x00000000, __u32)
++
++#define LIRC_GET_SEND_MODE_COMPAT32 _IOR('i', 0x00000001, __u32)
++#define LIRC_GET_REC_MODE_COMPAT32 _IOR('i', 0x00000002, __u32)
++
++#define LIRC_GET_LENGTH_COMPAT32 _IOR('i', 0x0000000f, __u32)
++
++#define LIRC_SET_SEND_MODE_COMPAT32 _IOW('i', 0x00000011, __u32)
++#define LIRC_SET_REC_MODE_COMPAT32 _IOW('i', 0x00000012, __u32)
++
++long lirc_dev_fop_compat_ioctl(struct file *file,
++ unsigned int cmd32,
++ unsigned long arg)
++{
++ mm_segment_t old_fs;
++ int ret;
++ unsigned long val;
++ unsigned int cmd;
++
++ switch (cmd32) {
++ case LIRC_GET_FEATURES_COMPAT32:
++ case LIRC_GET_SEND_MODE_COMPAT32:
++ case LIRC_GET_REC_MODE_COMPAT32:
++ case LIRC_GET_LENGTH_COMPAT32:
++ case LIRC_SET_SEND_MODE_COMPAT32:
++ case LIRC_SET_REC_MODE_COMPAT32:
++ /*
++ * These commands expect (unsigned long *) arg
++ * but the 32-bit app supplied (__u32 *).
++ * Conversion is required.
++ */
++ if (get_user(val, (__u32 *)compat_ptr(arg)))
++ return -EFAULT;
++ lock_kernel();
++ /*
++ * tell lirc_dev_fop_ioctl that it's safe to use the pointer
++ * to val which is in kernel address space and not in
++ * user address space.
++ */
++ old_fs = get_fs();
++ set_fs(KERNEL_DS);
++
++ cmd = _IOC(_IOC_DIR(cmd32), _IOC_TYPE(cmd32), _IOC_NR(cmd32),
++ (_IOC_TYPECHECK(unsigned long)));
++ ret = lirc_dev_fop_ioctl(file->f_path.dentry->d_inode, file,
++ cmd, (unsigned long)(&val));
++
++ set_fs(old_fs);
++ unlock_kernel();
++ switch (cmd) {
++ case LIRC_GET_FEATURES:
++ case LIRC_GET_SEND_MODE:
++ case LIRC_GET_REC_MODE:
++ case LIRC_GET_LENGTH:
++ if (!ret && put_user(val, (__u32 *)compat_ptr(arg)))
++ return -EFAULT;
++ break;
++ }
++ return ret;
++
++ case LIRC_GET_SEND_CARRIER:
++ case LIRC_GET_REC_CARRIER:
++ case LIRC_GET_SEND_DUTY_CYCLE:
++ case LIRC_GET_REC_DUTY_CYCLE:
++ case LIRC_GET_REC_RESOLUTION:
++ case LIRC_SET_SEND_CARRIER:
++ case LIRC_SET_REC_CARRIER:
++ case LIRC_SET_SEND_DUTY_CYCLE:
++ case LIRC_SET_REC_DUTY_CYCLE:
++ case LIRC_SET_TRANSMITTER_MASK:
++ case LIRC_SET_REC_DUTY_CYCLE_RANGE:
++ case LIRC_SET_REC_CARRIER_RANGE:
++ /*
++ * These commands expect (unsigned int *)arg
++ * so no problems here. Just handle the locking.
++ */
++ lock_kernel();
++ cmd = cmd32;
++ ret = lirc_dev_fop_ioctl(file->f_path.dentry->d_inode,
++ file, cmd, arg);
++ unlock_kernel();
++ return ret;
++ default:
++ /* unknown */
++ printk(KERN_ERR "lirc_dev: %s(%s:%d): Unknown cmd %08x\n",
++ __func__, current->comm, current->pid, cmd32);
++ return -ENOIOCTLCMD;
++ }
++}
++EXPORT_SYMBOL(lirc_dev_fop_compat_ioctl);
++#endif
++
++
+ssize_t lirc_dev_fop_read(struct file *file,
+ char *buffer,
+ size_t length,
@@ -1450,14 +1574,14 @@
+MODULE_AUTHOR("Artur Lipowski");
+MODULE_LICENSE("GPL");
+
-+module_param(debug, bool, 0644);
++module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Enable debugging messages");
diff --git a/drivers/input/lirc/lirc_dev.h b/drivers/input/lirc/lirc_dev.h
new file mode 100644
-index 0000000..bf05a7c
+index 0000000..b12d519
--- /dev/null
+++ b/drivers/input/lirc/lirc_dev.h
-@@ -0,0 +1,178 @@
+@@ -0,0 +1,180 @@
+/*
+ * LIRC base driver
+ *
@@ -1544,12 +1668,12 @@
+struct lirc_driver {
+ char name[40];
+ int minor;
-+ int code_length;
++ unsigned long code_length;
++ unsigned int buffer_size; /* in chunks holding one code each */
+ int sample_rate;
+ unsigned long features;
+
+ unsigned int chunk_size;
-+ unsigned int buffer_size; /* in chunks */
+
+ void *data;
+ int (*add_to_buf) (void *data, struct lirc_buffer *buf);
@@ -1634,11 +1758,13 @@
+ loff_t *ppos);
+ssize_t lirc_dev_fop_write(struct file *file, const char *buffer, size_t length,
+ loff_t *ppos);
++long lirc_dev_fop_compat_ioctl(struct file *file, unsigned int cmd32,
++ unsigned long arg);
+
+#endif
diff --git a/drivers/input/lirc/lirc_i2c.c b/drivers/input/lirc/lirc_i2c.c
new file mode 100644
-index 0000000..01a4ced
+index 0000000..dedf415
--- /dev/null
+++ b/drivers/input/lirc/lirc_i2c.c
@@ -0,0 +1,649 @@
@@ -2283,20 +2409,20 @@
+ "Ulrich Mueller, Stefan Jahn, Jerome Brock");
+MODULE_LICENSE("GPL");
+
-+module_param(minor, int, 0444);
++module_param(minor, int, S_IRUGO);
+MODULE_PARM_DESC(minor, "Preferred minor device number");
+
-+module_param(debug, bool, 0644);
++module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Enable debugging messages");
+
+module_init(lirc_i2c_init);
+module_exit(lirc_i2c_exit);
diff --git a/drivers/input/lirc/lirc_igorplugusb.c b/drivers/input/lirc/lirc_igorplugusb.c
new file mode 100644
-index 0000000..7dd8844
+index 0000000..51ccd1c
--- /dev/null
+++ b/drivers/input/lirc/lirc_igorplugusb.c
-@@ -0,0 +1,554 @@
+@@ -0,0 +1,555 @@
+/*
+ * lirc_igorplugusb - USB remote support for LIRC
+ *
@@ -2725,7 +2851,7 @@
+ driver->set_use_dec = &set_use_dec;
+ driver->sample_rate = sample_rate; /* per second */
+ driver->add_to_buf = &usb_remote_poll;
-+ driver->dev = &dev->dev;
++ driver->dev = &intf->dev;
+ driver->owner = THIS_MODULE;
+
+ init_waitqueue_head(&ir->wait_out);
@@ -2760,10 +2886,11 @@
+
+ if (dev->descriptor.iManufacturer
+ && usb_string(dev, dev->descriptor.iManufacturer, buf, 63) > 0)
-+ strncpy(name, buf, 128);
++ strlcpy(name, buf, sizeof(name));
+ if (dev->descriptor.iProduct
+ && usb_string(dev, dev->descriptor.iProduct, buf, 63) > 0)
-+ snprintf(name, 128, "%s %s", name, buf);
++ snprintf(name + strlen(name), sizeof(name) - strlen(name),
++ " %s", buf);
+ printk(DRIVER_NAME "[%d]: %s on usb%d:%d\n", devnum, name,
+ dev->bus->busnum, devnum);
+
@@ -2848,15 +2975,15 @@
+MODULE_LICENSE("GPL");
+MODULE_DEVICE_TABLE(usb, usb_remote_id_table);
+
-+module_param(sample_rate, int, 0644);
++module_param(sample_rate, int, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(sample_rate, "Sampling rate in Hz (default: 100)");
+
diff --git a/drivers/input/lirc/lirc_imon.c b/drivers/input/lirc/lirc_imon.c
new file mode 100644
-index 0000000..a0d052a
+index 0000000..5655a0d
--- /dev/null
+++ b/drivers/input/lirc/lirc_imon.c
-@@ -0,0 +1,1369 @@
+@@ -0,0 +1,1459 @@
+/*
+ * lirc_imon.c: LIRC/VFD/LCD driver for Ahanix/Soundgraph IMON IR/VFD/LCD
+ * including the iMON PAD model
@@ -2885,6 +3012,7 @@
+#include <linux/slab.h>
+#include <linux/uaccess.h>
+#include <linux/usb.h>
++#include <linux/time.h>
+
+#include "lirc.h"
+#include "lirc_dev.h"
@@ -2912,7 +3040,7 @@
+static void usb_rx_callback(struct urb *urb);
+static void usb_tx_callback(struct urb *urb);
+
-+/* Display file_operations function prototypes */
++/* display file_operations function prototypes */
+static int display_open(struct inode *inode, struct file *file);
+static int display_close(struct inode *inode, struct file *file);
+
@@ -2937,14 +3065,14 @@
+struct imon_context {
+ struct usb_device *usbdev;
+ int display_supported; /* not all controllers do */
-+ int display_isopen; /* Display port has been opened */
++ int display_isopen; /* display port has been opened */
+ int ir_isopen; /* IR port open */
+ int ir_isassociating; /* IR port open for association */
+ int dev_present; /* USB device presence */
+ struct mutex lock; /* to lock this object */
+ wait_queue_head_t remove_ok; /* For unexpected USB disconnects */
+
-+ int display_proto_6p; /* Display requires 6th packet */
++ int display_proto_6p; /* display requires 6th packet */
+ int ir_onboard_decode; /* IR signals decoded onboard */
+
+ struct lirc_driver *driver;
@@ -2970,7 +3098,7 @@
+ } tx;
+};
+
-+/* Display file operations. Nb: lcd_write will be subbed in as needed later */
++/* display file operations. Nb: lcd_write will be subbed in as needed later */
+static struct file_operations display_fops = {
+ .owner = THIS_MODULE,
+ .open = &display_open,
@@ -2995,7 +3123,7 @@
+ { USB_DEVICE(0x04e8, 0xff30) },
+ /* iMON USB Control Board (IR & VFD) */
+ { USB_DEVICE(0x15c2, 0xffda) },
-+ /* iMON USB Control Board (IR & LCD) *and* iMon Knob (IR only) */
++ /* iMON USB Control Board (IR & LCD) *and* iMON Knob (IR only) */
+ { USB_DEVICE(0x15c2, 0xffdc) },
+ /* iMON USB Control Board (IR & LCD) */
+ { USB_DEVICE(0x15c2, 0x0034) },
@@ -3033,7 +3161,7 @@
+static unsigned char display_packet6[] = {
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF };
+
-+/* newer iMon models use control endpoints */
++/* newer iMON models use control endpoints */
+static struct usb_device_id ctl_ep_device_list[] = {
+ { USB_DEVICE(0x15c2, 0x0034) },
+ { USB_DEVICE(0x15c2, 0x0036) },
@@ -3046,7 +3174,7 @@
+ {}
+};
+
-+/* iMon LCD models user a different write op */
++/* iMON LCD models user a different write op */
+static struct usb_device_id lcd_device_list[] = {
+ { USB_DEVICE(0x15c2, 0xffdc) },
+ { USB_DEVICE(0x15c2, 0x0034) },
@@ -3055,7 +3183,7 @@
+ {}
+};
+
-+/* iMon devices with front panel buttons need a larger buffer */
++/* iMON devices with front panel buttons need a larger buffer */
+static struct usb_device_id large_buffer_list[] = {
+ { USB_DEVICE(0x15c2, 0x0038) },
+ { USB_DEVICE(0x15c2, 0x0045) },
@@ -3075,7 +3203,7 @@
+ {}
+};
+
-+/* Some iMon devices have no lcd/vfd, don't set one up */
++/* Some iMON devices have no lcd/vfd, don't set one up */
+static struct usb_device_id ir_only_list[] = {
+ { USB_DEVICE(0x0aa8, 0x8001) },
+ { USB_DEVICE(0x04e8, 0xff30) },
@@ -3117,9 +3245,9 @@
+MODULE_VERSION(MOD_VERSION);
+MODULE_LICENSE("GPL");
+MODULE_DEVICE_TABLE(usb, imon_usb_id_table);
-+module_param(debug, int, 0);
++module_param(debug, int, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Debug messages: 0=no, 1=yes(default: no)");
-+module_param(display_type, int, 0);
++module_param(display_type, int, S_IRUGO);
+MODULE_PARM_DESC(display_type, "Type of attached display. 0=autodetect, "
+ "1=vfd, 2=lcd, 3=none (default: autodetect)");
+
@@ -3152,7 +3280,7 @@
+}
+
+/**
-+ * Called when the Display device (e.g. /dev/lcd0)
++ * Called when the display device (e.g. /dev/lcd0)
+ * is opened by the application.
+ */
+static int display_open(struct inode *inode, struct file *file)
@@ -3185,15 +3313,15 @@
+ mutex_lock(&context->lock);
+
+ if (!context->display_supported) {
-+ err("%s: Display not supported by device", __func__);
++ err("%s: display not supported by device", __func__);
+ retval = -ENODEV;
+ } else if (context->display_isopen) {
-+ err("%s: Display port is already open", __func__);
++ err("%s: display port is already open", __func__);
+ retval = -EBUSY;
+ } else {
+ context->display_isopen = 1;
+ file->private_data = context;
-+ printk(KERN_INFO "Display port opened\n");
++ printk(KERN_INFO "display port opened\n");
+ }
+
+ mutex_unlock(&context->lock);
@@ -3204,7 +3332,7 @@
+}
+
+/**
-+ * Called when the Display device (e.g. /dev/lcd0)
++ * Called when the display device (e.g. /dev/lcd0)
+ * is closed by the application.
+ */
+static int display_close(struct inode *inode, struct file *file)
@@ -3222,14 +3350,14 @@
+ mutex_lock(&context->lock);
+
+ if (!context->display_supported) {
-+ err("%s: Display not supported by device", __func__);
++ err("%s: display not supported by device", __func__);
+ retval = -ENODEV;
+ } else if (!context->display_isopen) {
-+ err("%s: Display is not open", __func__);
++ err("%s: display is not open", __func__);
+ retval = -EIO;
+ } else {
+ context->display_isopen = 0;
-+ printk(KERN_INFO "Display port closed\n");
++ printk(KERN_INFO "display port closed\n");
+ if (!context->dev_present && !context->ir_isopen) {
+ /*
+ * Device disconnected before close and IR port is not
@@ -3247,7 +3375,7 @@
+}
+
+/**
-+ * Sends a packet to the Display.
++ * Sends a packet to the display.
+ */
+static int send_packet(struct imon_context *context)
+{
@@ -3698,18 +3826,113 @@
+ return;
+}
+
++static inline int tv2int(const struct timeval *a, const struct timeval *b)
++{
++ int usecs = 0;
++ int sec = 0;
++
++ if (b->tv_usec > a->tv_usec) {
++ usecs = 1000000;
++ sec--;
++ }
++
++ usecs += a->tv_usec - b->tv_usec;
++
++ sec += a->tv_sec - b->tv_sec;
++ sec *= 1000;
++ usecs /= 1000;
++ sec += usecs;
++
++ if (sec < 0)
++ sec = 1000;
++
++ return sec;
++}
++
++/**
++ * The directional pad is overly sensitive in keyboard mode, so we do some
++ * interesting contortions to make it less touchy.
++ */
++#define IMON_PAD_TIMEOUT 1000 /* in msecs */
++#define IMON_PAD_THRESHOLD 80 /* 160x160 square */
++static int stabilize(int a, int b)
++{
++ struct timeval ct;
++ static struct timeval prev_time = {0, 0};
++ static struct timeval hit_time = {0, 0};
++ static int x, y, prev_result, hits;
++ int result = 0;
++ int msec, msec_hit;
++
++ do_gettimeofday(&ct);
++ msec = tv2int(&ct, &prev_time);
++ msec_hit = tv2int(&ct, &hit_time);
++
++ if (msec > 100) {
++ x = 0;
++ y = 0;
++ hits = 0;
++ }
++
++ x += a;
++ y += b;
++
++ prev_time = ct;
++
++ if (abs(x) > IMON_PAD_THRESHOLD || abs(y) > IMON_PAD_THRESHOLD) {
++ if (abs(y) > abs(x))
++ result = (y > 0) ? 0x7F : 0x80;
++ else
++ result = (x > 0) ? 0x7F00 : 0x8000;
++
++ x = 0;
++ y = 0;
++
++ if (result == prev_result) {
++ hits++;
++
++ if (hits > 3) {
++ switch (result) {
++ case 0x7F:
++ y = 17 * IMON_PAD_THRESHOLD / 30;
++ break;
++ case 0x80:
++ y -= 17 * IMON_PAD_THRESHOLD / 30;
++ break;
++ case 0x7F00:
++ x = 17 * IMON_PAD_THRESHOLD / 30;
++ break;
++ case 0x8000:
++ x -= 17 * IMON_PAD_THRESHOLD / 30;
++ break;
++ }
++ }
++
++ if (hits == 2 && msec_hit < IMON_PAD_TIMEOUT) {
++ result = 0;
++ hits = 1;
++ }
++ } else {
++ prev_result = result;
++ hits = 1;
++ hit_time = ct;
++ }
++ }
++
++ return result;
++}
++
+/**
+ * Process the incoming packet
+ */
+static void incoming_packet(struct imon_context *context,
-+ struct urb *urb)
++ struct urb *urb)
+{
+ int len = urb->actual_length;
+ unsigned char *buf = urb->transfer_buffer;
+ int octet, bit;
+ unsigned char mask;
-+ int chunk_num;
-+ int i;
++ int i, chunk_num, dir;
+
+ /*
+ * we need to add some special handling for
@@ -3731,17 +3954,11 @@
+ * try to ignore when they get too close
+ */
+ if ((buf[1] == 0) && ((buf[2] != 0) || (buf[3] != 0))) {
-+ int y = (int)(char)buf[2];
-+ int x = (int)(char)buf[3];
-+ if (abs(abs(x) - abs(y)) < 3) {
++ dir = stabilize((int)(char)buf[2], (int)(char)buf[3]);
++ if (!dir)
+ return;
-+ } else if (abs(y) > abs(x)) {
-+ buf[2] = 0x00;
-+ buf[3] = (y > 0) ? 0x7f : 0x80;
-+ } else {
-+ buf[3] = 0x00;
-+ buf[2] = (x > 0) ? 0x7f : 0x80;
-+ }
++ buf[2] = dir & 0xFF;
++ buf[3] = (dir >> 8) & 0xFF;
+ }
+ }
+
@@ -3930,7 +4147,7 @@
+ /*
+ * Scan the endpoint list and set:
+ * first input endpoint = IR endpoint
-+ * first output endpoint = Display endpoint
++ * first output endpoint = display endpoint
+ */
+ for (i = 0; i < num_endpts && !(ir_ep_found && display_ep_found); ++i) {
+ struct usb_endpoint_descriptor *ep;
@@ -3963,7 +4180,7 @@
+
+ /*
+ * If we didn't find a display endpoint, this is probably one of the
-+ * newer iMon devices that use control urb instead of interrupt
++ * newer iMON devices that use control urb instead of interrupt
+ */
+ if (!display_ep_found) {
+ if (usb_match_id(interface, ctl_ep_device_list)) {
@@ -3977,7 +4194,7 @@
+ }
+
+ /*
-+ * Some iMon receivers have no display. Unfortunately, it seems
++ * Some iMON receivers have no display. Unfortunately, it seems
+ * that SoundGraph recycles device IDs between devices both with
+ * and without... :\
+ */
@@ -4006,7 +4223,7 @@
+ ir_onboard_decode);
+ }
+
-+ /* Determine if Display requires 6 packets */
++ /* Determine if display requires 6 packets */
+ if (display_ep_found) {
+ if (usb_match_id(interface, display_proto_6p_list))
+ display_proto_6p = 1;
@@ -4020,13 +4237,13 @@
+
+ context = kzalloc(sizeof(struct imon_context), GFP_KERNEL);
+ if (!context) {
-+ err("%s: kmalloc failed for context", __func__);
++ err("%s: kzalloc failed for context", __func__);
+ alloc_status = 1;
+ goto alloc_status_switch;
+ }
+ driver = kzalloc(sizeof(struct lirc_driver), GFP_KERNEL);
+ if (!driver) {
-+ err("%s: kmalloc failed for lirc_driver", __func__);
++ err("%s: kzalloc failed for lirc_driver", __func__);
+ alloc_status = 2;
+ goto alloc_status_switch;
+ }
@@ -4050,7 +4267,7 @@
+ if (display_ep_found) {
+ tx_urb = usb_alloc_urb(0, GFP_KERNEL);
+ if (!tx_urb) {
-+ err("%s: usb_alloc_urb failed for Display urb",
++ err("%s: usb_alloc_urb failed for display urb",
+ __func__);
+ alloc_status = 6;
+ goto alloc_status_switch;
@@ -4071,7 +4288,7 @@
+ driver->rbuf = rbuf;
+ driver->set_use_inc = ir_open;
+ driver->set_use_dec = ir_close;
-+ driver->dev = &usbdev->dev;
++ driver->dev = &interface->dev;
+ driver->owner = THIS_MODULE;
+
+ mutex_lock(&context->lock);
@@ -4115,11 +4332,11 @@
+
+ if (display_ep_found && context->display_supported) {
+ if (debug)
-+ printk(KERN_INFO "Registering Display with sysfs\n");
++ printk(KERN_INFO "Registering display with sysfs\n");
+ if (usb_register_dev(interface, &imon_class)) {
+ /* Not a fatal error, so ignore */
+ printk(KERN_INFO "%s: could not get a minor number for "
-+ "Display\n", __func__);
++ "display\n", __func__);
+ }
+ }
+
@@ -4228,7 +4445,7 @@
+module_exit(imon_exit);
diff --git a/drivers/input/lirc/lirc_it87.c b/drivers/input/lirc/lirc_it87.c
new file mode 100644
-index 0000000..3a3484c
+index 0000000..232ba97
--- /dev/null
+++ b/drivers/input/lirc/lirc_it87.c
@@ -0,0 +1,984 @@
@@ -5181,24 +5398,24 @@
+MODULE_AUTHOR("Hans-Gunter Lutke Uphues");
+MODULE_LICENSE("GPL");
+
-+module_param(io, int, 0444);
++module_param(io, int, S_IRUGO);
+MODULE_PARM_DESC(io, "I/O base address (default: 0x310)");
+
-+module_param(irq, int, 0444);
++module_param(irq, int, S_IRUGO);
+#ifdef LIRC_IT87_DIGIMATRIX
+MODULE_PARM_DESC(irq, "Interrupt (1,3-12) (default: 9)");
+#else
+MODULE_PARM_DESC(irq, "Interrupt (1,3-12) (default: 7)");
+#endif
+
-+module_param(it87_enable_demodulator, bool, 0444);
++module_param(it87_enable_demodulator, bool, S_IRUGO);
+MODULE_PARM_DESC(it87_enable_demodulator,
+ "Receiver demodulator enable/disable (1/0), default: 0");
+
-+module_param(debug, bool, 0644);
++module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Enable debugging messages");
+
-+module_param(digimatrix, bool, 0644);
++module_param(digimatrix, bool, S_IRUGO | S_IWUSR);
+#ifdef LIRC_IT87_DIGIMATRIX
+MODULE_PARM_DESC(digimatrix,
+ "Asus Digimatrix it87 compat. enable/disable (1/0), default: 1");
@@ -5208,7 +5425,7 @@
+#endif
+
+
-+module_param(it87_freq, int, 0444);
++module_param(it87_freq, int, S_IRUGO);
+#ifdef LIRC_IT87_DIGIMATRIX
+MODULE_PARM_DESC(it87_freq,
+ "Carrier demodulator frequency (kHz), (default: 36)");
@@ -5340,7 +5557,7 @@
+/********************************* ITE IT87xx ************************/
diff --git a/drivers/input/lirc/lirc_ite8709.c b/drivers/input/lirc/lirc_ite8709.c
new file mode 100644
-index 0000000..6a544ec
+index 0000000..3d53181
--- /dev/null
+++ b/drivers/input/lirc/lirc_ite8709.c
@@ -0,0 +1,539 @@
@@ -5881,14 +6098,14 @@
+MODULE_AUTHOR("Grégory Lardière");
+MODULE_LICENSE("GPL");
+
-+module_param(debug, bool, 0644);
++module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Enable debugging messages");
diff --git a/drivers/input/lirc/lirc_mceusb.c b/drivers/input/lirc/lirc_mceusb.c
new file mode 100644
-index 0000000..16f9757
+index 0000000..2e94699
--- /dev/null
+++ b/drivers/input/lirc/lirc_mceusb.c
-@@ -0,0 +1,784 @@
+@@ -0,0 +1,747 @@
+/*
+ * USB Microsoft IR Transceiver driver - 0.2
+ *
@@ -5980,15 +6197,9 @@
+ struct urb *write_urb; /* the urb used to send data */
+ __u8 bulk_out_endpointAddr; /* the address of bulk out endpoint */
+
-+ atomic_t write_busy; /* true iff write urb is busy */
-+ struct completion write_finished; /* wait for the write to finish */
-+
+ wait_queue_head_t wait_q; /* for timeouts */
-+ int open_count; /* number of times this port has been opened */
+ struct mutex lock; /* locks this structure */
+
-+ int present; /* if the device is not disconnected */
-+
+ struct lirc_driver *driver;
+
+ int lircdata[256]; /* place to store data until lirc processes it */
@@ -6037,21 +6248,6 @@
+ .id_table = mceusb_table,
+};
+
-+
-+static void usb_mceusb_debug_data(const char *function, int size,
-+ const unsigned char *data)
-+{
-+ int i;
-+ if (!debug)
-+ return;
-+
-+ printk(KERN_DEBUG __FILE__": %s - length = %d, data = ",
-+ function, size);
-+ for (i = 0; i < size; ++i)
-+ printk(KERN_DEBUG "%.2x ", data[i]);
-+ printk(KERN_DEBUG "\n");
-+}
-+
+static void mceusb_delete(struct mceusb_device *dev)
+{
+ dprintk("%s", __func__);
@@ -6193,8 +6389,6 @@
+ /* handle signals and USB disconnects */
+ if (signal_pending(current))
+ return dev->lirccnt ? dev->lirccnt : -EINTR;
-+ if (!dev->udev)
-+ return -ENODEV;
+
+ bulkidx = 0;
+
@@ -6375,12 +6569,6 @@
+
+ mutex_lock(&dev->lock);
+
-+ /* verify device still present */
-+ if (dev->udev == NULL) {
-+ mutex_unlock(&dev->lock);
-+ return -ENODEV;
-+ }
-+
+ if (!dev->lirccnt) {
+ int res;
+ dev->lircidx = 0;
@@ -6561,7 +6749,7 @@
+ driver->set_use_dec = &set_use_dec;
+ driver->sample_rate = 80; /* sample at 100hz (10ms) */
+ driver->add_to_buf = &mceusb_add_to_buf;
-+ driver->dev = &udev->dev;
++ driver->dev = &interface->dev;
+ driver->owner = THIS_MODULE;
+ if (lirc_register_driver(driver) < 0) {
+ kfree(driver);
@@ -6623,14 +6811,6 @@
+ /* unhook lirc things */
+ lirc_unregister_driver(minor);
+ kfree(dev->driver);
-+ /* terminate an ongoing write */
-+ if (atomic_read(&dev->write_busy)) {
-+ usb_kill_urb(dev->write_urb);
-+ wait_for_completion(&dev->write_finished);
-+ }
-+
-+ /* prevent device read, write and ioctl */
-+ dev->present = 0;
+
+ mutex_unlock(&dev->lock);
+ mceusb_delete(dev);
@@ -6671,14 +6851,14 @@
+MODULE_LICENSE("GPL");
+MODULE_DEVICE_TABLE(usb, mceusb_table);
+
-+module_param(debug, int, 0644);
++module_param(debug, int, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Debug enabled or not");
diff --git a/drivers/input/lirc/lirc_mceusb2.c b/drivers/input/lirc/lirc_mceusb2.c
new file mode 100644
-index 0000000..8bc9263
+index 0000000..089ee21
--- /dev/null
+++ b/drivers/input/lirc/lirc_mceusb2.c
-@@ -0,0 +1,1119 @@
+@@ -0,0 +1,1097 @@
+/*
+ * LIRC driver for Philips eHome USB Infrared Transceiver
+ * and the Microsoft MCE 2005 Remote Control
@@ -6733,7 +6913,7 @@
+ "MCE 2005 Remote Control driver for LIRC"
+#define DRIVER_NAME "lirc_mceusb2"
+
-+#define USB_BUFLEN 16 /* USB reception buffer length */
++#define USB_BUFLEN 32 /* USB reception buffer length */
+#define LIRCBUF_SIZE 256 /* LIRC work buffer length */
+
+/* MCE constants */
@@ -6794,8 +6974,6 @@
+#define VENDOR_COMPRO 0x185b
+
+static struct usb_device_id mceusb_dev_table[] = {
-+ /* Philips eHome Infrared Transceiver */
-+ { USB_DEVICE(VENDOR_PHILIPS, 0x0815) },
+ /* Philips Infrared Transceiver - Sahara branded */
+ { USB_DEVICE(VENDOR_PHILIPS, 0x0608) },
+ /* Philips Infrared Transceiver - HP branded */
@@ -6806,6 +6984,8 @@
+ { USB_DEVICE(VENDOR_PHILIPS, 0x060f) },
+ /* Philips Infrared Transceiver - Spinel plus */
+ { USB_DEVICE(VENDOR_PHILIPS, 0x0613) },
++ /* Philips eHome Infrared Transceiver */
++ { USB_DEVICE(VENDOR_PHILIPS, 0x0815) },
+ /* SMK/Toshiba G83C0004D410 */
+ { USB_DEVICE(VENDOR_SMK, 0x031d) },
+ /* SMK eHome Infrared Transceiver (Sony VAIO) */
@@ -7145,26 +7325,8 @@
+ case 0:
+ for (i = 0; i < buf_len; i++) {
+ /* decode mce packets of the form (84),AA,BB,CC,DD */
-+ switch (ir->buf_in[i]) {
-+
++ if (ir->buf_in[i] >= 0x80 && ir->buf_in[i] <= 0x9e) {
+ /* data headers */
-+ case 0x90: /* used Pinnacle Remote Kit */
-+ case 0x8F:
-+ case 0x8E:
-+ case 0x8D:
-+ case 0x8C:
-+ case 0x8B:
-+ case 0x8A:
-+ case 0x89:
-+ case 0x88:
-+ case 0x87:
-+ case 0x86:
-+ case 0x85:
-+ case 0x84:
-+ case 0x83:
-+ case 0x82:
-+ case 0x81:
-+ case 0x80:
+ /* decode packet data */
+ packet_len = ir->buf_in[i] &
+ MCE_PACKET_LENGTH_MASK;
@@ -7190,10 +7352,8 @@
+ }
+
+ i += packet_len;
-+ break;
-+
++ } else if (ir->buf_in[i] == MCE_CONTROL_HEADER) {
+ /* status header (0x9F) */
-+ case MCE_CONTROL_HEADER:
+ /*
+ * A transmission containing one or
+ * more consecutive ir commands always
@@ -7215,9 +7375,6 @@
+
+ /* end decode loop */
+ i = buf_len;
-+ break;
-+ default:
-+ break;
+ }
+ }
+
@@ -7596,7 +7753,7 @@
+ driver->set_use_dec = &set_use_dec;
+ driver->code_length = sizeof(int) * 8;
+ driver->fops = &lirc_fops;
-+ driver->dev = &dev->dev;
++ driver->dev = &intf->dev;
+ driver->owner = THIS_MODULE;
+
+ mutex_init(&ir->lock);
@@ -7648,10 +7805,11 @@
+
+ if (dev->descriptor.iManufacturer
+ && usb_string(dev, dev->descriptor.iManufacturer, buf, 63) > 0)
-+ strncpy(name, buf, 128);
++ strlcpy(name, buf, sizeof(name));
+ if (dev->descriptor.iProduct
+ && usb_string(dev, dev->descriptor.iProduct, buf, 63) > 0)
-+ snprintf(name, 128, "%s %s", name, buf);
++ snprintf(name + strlen(name), sizeof(name) - strlen(name),
++ " %s", buf);
+ printk(DRIVER_NAME "[%d]: %s on usb%d:%d\n", devnum, name,
+ dev->bus->busnum, devnum);
+
@@ -7796,11 +7954,11 @@
+MODULE_LICENSE("GPL");
+MODULE_DEVICE_TABLE(usb, mceusb_dev_table);
+
-+module_param(debug, bool, 0644);
++module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Debug enabled or not");
diff --git a/drivers/input/lirc/lirc_parallel.c b/drivers/input/lirc/lirc_parallel.c
new file mode 100644
-index 0000000..b66c57f
+index 0000000..07d0d02
--- /dev/null
+++ b/drivers/input/lirc/lirc_parallel.c
@@ -0,0 +1,709 @@
@@ -8499,19 +8657,19 @@
+MODULE_AUTHOR("Christoph Bartelmus");
+MODULE_LICENSE("GPL");
+
-+module_param(io, int, 0444);
++module_param(io, int, S_IRUGO);
+MODULE_PARM_DESC(io, "I/O address base (0x3bc, 0x378 or 0x278)");
+
-+module_param(irq, int, 0444);
++module_param(irq, int, S_IRUGO);
+MODULE_PARM_DESC(irq, "Interrupt (7 or 5)");
+
-+module_param(tx_mask, int, 0444);
++module_param(tx_mask, int, S_IRUGO);
+MODULE_PARM_DESC(tx_maxk, "Transmitter mask (default: 0x01)");
+
-+module_param(debug, bool, 0644);
++module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Enable debugging messages");
+
-+module_param(check_pselecd, bool, 0644);
++module_param(check_pselecd, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Check for printer (default: 0)");
diff --git a/drivers/input/lirc/lirc_parallel.h b/drivers/input/lirc/lirc_parallel.h
new file mode 100644
@@ -8547,7 +8705,7 @@
+#endif
diff --git a/drivers/input/lirc/lirc_sasem.c b/drivers/input/lirc/lirc_sasem.c
new file mode 100644
-index 0000000..e26cda2
+index 0000000..3b79372
--- /dev/null
+++ b/drivers/input/lirc/lirc_sasem.c
@@ -0,0 +1,933 @@
@@ -8715,7 +8873,7 @@
+MODULE_AUTHOR(MOD_AUTHOR);
+MODULE_DESCRIPTION(MOD_DESC);
+MODULE_LICENSE("GPL");
-+module_param(debug, int, 0);
++module_param(debug, int, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Debug messages: 0=no, 1=yes (default: no)");
+
+static void delete_context(struct sasem_context *context)
@@ -9299,13 +9457,13 @@
+
+ context = kzalloc(sizeof(struct sasem_context), GFP_KERNEL);
+ if (!context) {
-+ err("%s: kmalloc failed for context", __func__);
++ err("%s: kzalloc failed for context", __func__);
+ alloc_status = 1;
+ goto alloc_status_switch;
+ }
+ driver = kzalloc(sizeof(struct lirc_driver), GFP_KERNEL);
+ if (!driver) {
-+ err("%s: kmalloc failed for lirc_driver", __func__);
++ err("%s: kzalloc failed for lirc_driver", __func__);
+ alloc_status = 2;
+ goto alloc_status_switch;
+ }
@@ -9347,7 +9505,7 @@
+ driver->rbuf = rbuf;
+ driver->set_use_inc = ir_open;
+ driver->set_use_dec = ir_close;
-+ driver->dev = &dev->dev;
++ driver->dev = &interface->dev;
+ driver->owner = THIS_MODULE;
+
+ mutex_lock(&context->lock);
@@ -9486,7 +9644,7 @@
+module_exit(sasem_exit);
diff --git a/drivers/input/lirc/lirc_serial.c b/drivers/input/lirc/lirc_serial.c
new file mode 100644
-index 0000000..643c762
+index 0000000..692634f
--- /dev/null
+++ b/drivers/input/lirc/lirc_serial.c
@@ -0,0 +1,1321 @@
@@ -10371,7 +10529,7 @@
+ /* If pin is high, then this must be an active low receiver. */
+ if (sense == -1) {
+ /* wait 1/2 sec for the power supply */
-+ msleep(HZ/2);
++ msleep(jiffies_to_msecs(HZ/2));
+
+ /*
+ * probe 9 times every 0.04s, collect "votes" for
@@ -10384,7 +10542,7 @@
+ nlow++;
+ else
+ nhigh++;
-+ msleep(HZ/25);
++ msleep(jiffies_to_msecs(HZ/25));
+ }
+ sense = (nlow >= nhigh ? 1 : 0);
+ printk(KERN_INFO LIRC_DRIVER_NAME ": auto-detected active "
@@ -10769,16 +10927,16 @@
+ "Christoph Bartelmus, Andrei Tanas");
+MODULE_LICENSE("GPL");
+
-+module_param(type, int, 0444);
++module_param(type, int, S_IRUGO);
+MODULE_PARM_DESC(type, "Hardware type (0 = home-brew, 1 = IRdeo,"
+ " 2 = IRdeo Remote, 3 = AnimaX, 4 = IgorPlug,"
+ " 5 = NSLU2 RX:CTS2/TX:GreenLED)");
+
-+module_param(io, int, 0444);
++module_param(io, int, S_IRUGO);
+MODULE_PARM_DESC(io, "I/O address base (0x3f8 or 0x2f8)");
+
+/* some architectures (e.g. intel xscale) have memory mapped registers */
-+module_param(iommap, bool, 0444);
++module_param(iommap, bool, S_IRUGO);
+MODULE_PARM_DESC(iommap, "physical base for memory mapped I/O"
+ " (0 = no memory mapped io)");
+
@@ -10787,33 +10945,33 @@
+ * on 32bit word boundaries.
+ * See linux-kernel/serial/8250.c serial_in()/out()
+ */
-+module_param(ioshift, int, 0444);
++module_param(ioshift, int, S_IRUGO);
+MODULE_PARM_DESC(ioshift, "shift I/O register offset (0 = no shift)");
+
-+module_param(irq, int, 0444);
++module_param(irq, int, S_IRUGO);
+MODULE_PARM_DESC(irq, "Interrupt (4 or 3)");
+
-+module_param(share_irq, bool, 0444);
++module_param(share_irq, bool, S_IRUGO);
+MODULE_PARM_DESC(share_irq, "Share interrupts (0 = off, 1 = on)");
+
-+module_param(sense, bool, 0444);
++module_param(sense, bool, S_IRUGO);
+MODULE_PARM_DESC(sense, "Override autodetection of IR receiver circuit"
+ " (0 = active high, 1 = active low )");
+
+#ifdef CONFIG_LIRC_SERIAL_TRANSMITTER
-+module_param(txsense, bool, 0444);
++module_param(txsense, bool, S_IRUGO);
+MODULE_PARM_DESC(txsense, "Sense of transmitter circuit"
+ " (0 = active high, 1 = active low )");
+#endif
+
-+module_param(softcarrier, bool, 0444);
++module_param(softcarrier, bool, S_IRUGO);
+MODULE_PARM_DESC(softcarrier, "Software carrier (0 = off, 1 = on, default on)");
+
-+module_param(debug, bool, 0644);
++module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Enable debugging messages");
diff --git a/drivers/input/lirc/lirc_sir.c b/drivers/input/lirc/lirc_sir.c
new file mode 100644
-index 0000000..093cfd2
+index 0000000..306c77a
--- /dev/null
+++ b/drivers/input/lirc/lirc_sir.c
@@ -0,0 +1,1294 @@
@@ -12096,27 +12254,27 @@
+MODULE_LICENSE("GPL");
+
+#ifdef LIRC_ON_SA1100
-+module_param(irq, int, 0444);
++module_param(irq, int, S_IRUGO);
+MODULE_PARM_DESC(irq, "Interrupt (16)");
+#else
-+module_param(io, int, 0444);
++module_param(io, int, S_IRUGO);
+MODULE_PARM_DESC(io, "I/O address base (0x3f8 or 0x2f8)");
+
-+module_param(irq, int, 0444);
++module_param(irq, int, S_IRUGO);
+MODULE_PARM_DESC(irq, "Interrupt (4 or 3)");
+
-+module_param(threshold, int, 0444);
++module_param(threshold, int, S_IRUGO);
+MODULE_PARM_DESC(threshold, "space detection threshold (3)");
+#endif
+
-+module_param(debug, bool, 0644);
++module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Enable debugging messages");
diff --git a/drivers/input/lirc/lirc_streamzap.c b/drivers/input/lirc/lirc_streamzap.c
new file mode 100644
-index 0000000..cb05b58
+index 0000000..f91c1e3
--- /dev/null
+++ b/drivers/input/lirc/lirc_streamzap.c
-@@ -0,0 +1,772 @@
+@@ -0,0 +1,773 @@
+/*
+ * Streamzap Remote Control driver
+ *
@@ -12333,7 +12491,7 @@
+ (unsigned char *) &data);
+ }
+ if (sz->timer_running) {
-+ sz->delay_timer.expires += timer_inc;
++ sz->delay_timer.expires = jiffies + timer_inc;
+ add_timer(&sz->delay_timer);
+ }
+ } else {
@@ -12641,7 +12799,7 @@
+ sz->driver.set_use_inc = &streamzap_use_inc;
+ sz->driver.set_use_dec = &streamzap_use_dec;
+ sz->driver.fops = &streamzap_fops;
-+ sz->driver.dev = &udev->dev;
++ sz->driver.dev = &interface->dev;
+ sz->driver.owner = THIS_MODULE;
+
+ sz->idle = 1;
@@ -12664,11 +12822,12 @@
+
+ if (udev->descriptor.iManufacturer
+ && usb_string(udev, udev->descriptor.iManufacturer, buf, 63) > 0)
-+ strncpy(name, buf, 128);
++ strlcpy(name, buf, sizeof(name));
+
+ if (udev->descriptor.iProduct
+ && usb_string(udev, udev->descriptor.iProduct, buf, 63) > 0)
-+ snprintf(name, 128, "%s %s", name, buf);
++ snprintf(name + strlen(name), sizeof(name) - strlen(name),
++ " %s", buf);
+
+ printk(KERN_INFO DRIVER_NAME "[%d]: %s on usb%d:%d attached\n",
+ sz->driver.minor, name,
@@ -12761,7 +12920,7 @@
+
+ switch (cmd) {
+ case LIRC_GET_REC_RESOLUTION:
-+ result = put_user(STREAMZAP_RESOLUTION, (unsigned long *) arg);
++ result = put_user(STREAMZAP_RESOLUTION, (unsigned int *) arg);
+ if (result)
+ return result;
+ break;
@@ -12887,14 +13046,14 @@
+MODULE_DESCRIPTION(DRIVER_DESC);
+MODULE_LICENSE("GPL");
+
-+module_param(debug, bool, 0644);
++module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Enable debugging messages");
diff --git a/drivers/input/lirc/lirc_ttusbir.c b/drivers/input/lirc/lirc_ttusbir.c
new file mode 100644
-index 0000000..8e65ee7
+index 0000000..4d18084
--- /dev/null
+++ b/drivers/input/lirc/lirc_ttusbir.c
-@@ -0,0 +1,396 @@
+@@ -0,0 +1,398 @@
+/*
+ * lirc_ttusbir.c
+ *
@@ -12957,7 +13116,7 @@
+static void set_use_dec(void *data);
+
+static int num_urbs = 2;
-+module_param(num_urbs, int, 0444);
++module_param(num_urbs, int, S_IRUGO);
+MODULE_PARM_DESC(num_urbs,
+ "Number of URBs in queue. Try to increase to 4 in case "
+ "of problems (default: 2; minimum: 2)");
@@ -13204,6 +13363,8 @@
+ ttusbir->driver.rbuf = &ttusbir->rbuf;
+ ttusbir->driver.set_use_inc = set_use_inc;
+ ttusbir->driver.set_use_dec = set_use_dec;
++ ttusbir->driver.fops = NULL;
++ ttusbir->driver.dev = &intf->dev;
+ ttusbir->driver.owner = THIS_MODULE;
+ ttusbir->driver.features = LIRC_CAN_REC_MODE2;
+ ttusbir->minor = lirc_register_driver(&ttusbir->driver);
Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/sources,v
retrieving revision 1.953
retrieving revision 1.954
diff -u -r1.953 -r1.954
--- sources 27 Feb 2009 06:10:12 -0000 1.953
+++ sources 1 Mar 2009 02:52:38 -0000 1.954
@@ -1,3 +1,3 @@
d351e44709c9810b85e29b877f50968a linux-2.6.28.tar.bz2
26f67d99666834cc579094619821d3c8 patch-2.6.29-rc6.bz2
-c9a437c9aecae85e0e11338f175d4818 patch-2.6.29-rc6-git4.bz2
+c9924c779a427f2b57cd201fbef62cee patch-2.6.29-rc6-git5.bz2
Index: upstream
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/upstream,v
retrieving revision 1.864
retrieving revision 1.865
diff -u -r1.864 -r1.865
--- upstream 27 Feb 2009 06:10:12 -0000 1.864
+++ upstream 1 Mar 2009 02:52:38 -0000 1.865
@@ -1,3 +1,3 @@
linux-2.6.28.tar.bz2
patch-2.6.29-rc6.bz2
-patch-2.6.29-rc6-git4.bz2
+patch-2.6.29-rc6-git5.bz2
--- patch-2.6.29-rc6-git4.bz2.sign DELETED ---
- Previous message: rpms/flexdock/F-9 flexdock-build.patch, NONE, 1.1 flexdock-generate-tarball.sh, NONE, 1.1 flexdock-jni.patch, NONE, 1.1 flexdock-nojmf.patch, NONE, 1.1 flexdock-skinlfPainter-path.patch, NONE, 1.1 flexdock-skinlfTitlebarui-path.patch, NONE, 1.1 flexdock.spec, NONE, 1.1 import.log, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Next message: rpms/flexdock/F-10 flexdock-build.patch, NONE, 1.1 flexdock-generate-tarball.sh, NONE, 1.1 flexdock-jni.patch, NONE, 1.1 flexdock-nojmf.patch, NONE, 1.1 flexdock-skinlfPainter-path.patch, NONE, 1.1 flexdock-skinlfTitlebarui-path.patch, NONE, 1.1 flexdock.spec, NONE, 1.1 import.log, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the scm-commits
mailing list