staging/lustre/llite: access layout version under a lock
We used to access layout version under the protection of ldlm
lock, this introduces extra overhead for dlm lock matching.
In this patch, lli_layout_lock is introduced to access the layout
version. Also, when a layout lock is losing, we should tear down
mmap of the correspoding inode to avoid stale data accessing in the
future.
This is part of technical verification of replication.
The statahead debug messages include the pid of the current
process in their body. This is both redudant (because all
lustre log messages contain the pid), and sometimes downright
misleading. For instance the messages would say something like
"stopping statahead thread 3446". One would probably think
that 3446 is the pid of the process that is being stopped,
but in fact it was the pid of the caller issuing the stop signal.
We remove all superfluous pids from the messages.
Next we have the ll_statahead_thread() and the ll_agl_thread() record
their respective pids in their respective ptlrpc_thread structures.
This allows to print the pid of the thread that we are trying to
stop (which is actually useful info) from other threads, such as those
calling ll_stop_statahead().
Signed-off-by: Christopher J. Morrone <morrone2@llnl.gov>
Reviewed-on: http://review.whamcloud.com/9360
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4624 Reviewed-by: Fan Yong <fan.yong@intel.com> Reviewed-by: Lai Siyao <lai.siyao@intel.com> Signed-off-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The statahead and statahead agl threads blindly set their
thread state to SVC_RUNNING without checking the state first. If, for
instance, another thread sets the state to SVC_STOPPING that
stop signal will now have been lost. Deadlock ensues.
We also partly improve the sai reference counting, because a race exists
where the ll_stop_statahead thread can drop the default reference, and
the statahead thread can exit and drop its reference as well. With no
references on the sai, the final put will poison and free the buffer. The
original do_statahead_enter() function may then continue to access
the buffer after it is freed because it did not take a reference of its
own. We add a local reference to address that.
Signed-off-by: Christopher J. Morrone <morrone2@llnl.gov>
Reviewed-on: http://review.whamcloud.com/9358
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4624 Reviewed-by: Lai Siyao <lai.siyao@intel.com> Reviewed-by: Fan Yong <fan.yong@intel.com> Signed-off-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Brian Behlendorf [Sun, 27 Apr 2014 17:06:47 +0000 (13:06 -0400)]
staging/lustre: Limit reply buffer size
When allocating a reply buffer for the striping information don't
assume the unlikely worst case. Instead, assume the common case
and size the buffer based on the observed default ea/cookie size.
The default size is initialized to a single stripe and allowed to
grow up to an entire page if needed. This means that for smallish
filesystems (less than ~21 OSTs) where the worst case striping
information can fit in a single page there is effectively no
change. Only for larger filesystem will the default be less than
the maximum. This has a number of advantages.
* By limiting the default reply buffer size we avoid always
vmalloc()'ing the buffer because it exceeds four pages in size
and instead kmalloc() it. This prevents the client from
thrashing on the global vmalloc() spin lock.
* A reply buffer of exactly the right size (no larger) is allocated
in the overflow case. These larger reply buffers are still
unlikely to exceed the 16k limit where a vmalloc() will occur.
* Saves memory in the common case. Wide striped files exceeded
the default are expected to be the exception.
The reason this patch works is because the ptlrpc layer is smart
enough to reallocate the reply buffer when an overflow occurs.
Therefore the client doesn't have to drop the incoming reply and
send a new request with a larger reply buffer.
It's also worth mentioning that the reply buffer always contains
a significant amount of extra padding because they are rounded up
to the nearest power of two. This means that even files striped
wider than the default have a good chance of fitting in the
allocated reply buffer.
Also remove client eadatasize check in mdt xattr packing because
as said above client can handle -EOVERFLOW.
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-on: http://review.whamcloud.com/6339
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3338 Reviewed-by: James Simmons <uja.ornl@gmail.com> Reviewed-by: Andreas Dilger <andreas.dilger@intel.com> Reviewed-by: Bob Glossman <bob.glossman@intel.com> Signed-off-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bobi Jam [Sun, 27 Apr 2014 17:06:45 +0000 (13:06 -0400)]
staging/lustre/llite: deadlock taking lli_trunc_sem during file write
File write before io loop will take lli_trun_sem read semaphore to
protect osc_extent, while after generic_file_aio_write() done, it
could possible need to kill suid or sgid, which will call
ll_setattr_raw() to change the inode's attribute, and it does not
involve size.
So the ll_truc_sem write semaphore should be constrained
around ll_setattr_ost() to not come across the lli_trunc_sem read
semaphore get from the normal file write path.
Signed-off-by: Bobi Jam <bobijam.xu@intel.com>
Reviewed-on: http://review.whamcloud.com/9267
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4627 Reviewed-by: Lai Siyao <lai.siyao@intel.com> Signed-off-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bobi Jam [Sun, 27 Apr 2014 17:06:44 +0000 (13:06 -0400)]
staging/lustre/llite: issue OST_SYNC for fsync()
The last parameter @datasync of fsync() has following indication:
* if datasync=0, we'd always flush data and metadata
* if datasync=1, we'd always flush data while does not flush modifed
metadata unless that metadata is needed in order to allow a
subsequent data retrieval to be correctly handled. For example, a
change to the file size would require a metadata flush.
Lustre client can not tell the difference easily, and would issue
MDS_SYNC and OST_SYNC in all cases.
Li Xi [Sun, 27 Apr 2014 17:06:43 +0000 (13:06 -0400)]
staging/lustre: fix permission problem of setfacl
Setxattr does not check the permission when setting ACL xattrs. This
will cause security problem because any user can walk around
permission checking by changing ACL rules.
Signed-off-by: Li Xi <lixi@ddn.com>
Reviewed-on: http://review.whamcloud.com/9473
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4704 Reviewed-by: Andreas Dilger <andreas.dilger@intel.com> Reviewed-by: Bob Glossman <bob.glossman@intel.com> Reviewed-by: John L. Hammond <john.hammond@intel.com> Signed-off-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
James Nunez [Sun, 27 Apr 2014 17:06:42 +0000 (13:06 -0400)]
staging/lustre/hsm: HSM requests not delivered
The total size of an HSM archive request may exceed the
desired (LNET) message. When this happens, it can hang
the client and not allow the archive request to succeed.
Before we know the total size of the hsm_action_items, we
need to limit the size of the reguest. Doing this limits
the number of items that can be sent in one archive request.
We'e reduced the size allowed for the user archive request
to MDS_MAXREQSIZE/3.
Signed-off-by: James Nunez <james.a.nunez@intel.com>
Reviewed-on: http://review.whamcloud.com/9393
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4639 Reviewed-by: John L. Hammond <john.hammond@intel.com> Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com> Signed-off-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Peng Tao [Sun, 27 Apr 2014 17:06:41 +0000 (13:06 -0400)]
staging/lustre/hsm: count NULL terminator in hai_zero/hal_size
If fsname is 8-byte aligned, hai_zero fails to count the ending NULL
terminator causing hai to directly attached after fsname and future
hai_zero will return a different position for first hai.
John L. Hammond [Sun, 27 Apr 2014 17:06:40 +0000 (13:06 -0400)]
staging/lustre/obdclass: remove uses of lov_stripe_md
Remove the unused function llog_obd_add(). Remove the unused count and
parameters from llog_cancel(). Move dump_lsm() from obdclass to
the only module that uses it (lov). Remove obd_lov.h.
Signed-off-by: John L. Hammond <john.hammond@intel.com>
Reviewed-on: http://review.whamcloud.com/8545
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-2675 Reviewed-by: Bobi Jam <bobijam@gmail.com> Reviewed-by: Mike Pershin <mike.pershin@intel.com> Signed-off-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Ann Koehler [Sun, 27 Apr 2014 17:06:36 +0000 (13:06 -0400)]
staging/lustre: restore __GFP_WAIT flag to memalloc calls
In Lustre 2.4, the flags passed to the memory allocation functions are
translated from CFS enumeration values types to the kernel GFP
values by calling cfs_alloc_flags_to_gfp(). This function adds
__GFP_WAIT to all flags except CFS_ALLOC_ATOMIC. In 2.5, when
the cfs wrappers were dropped, cfs_alloc_flags_to_gfp() was
removed and the CFS_ALLOC_xxxx was simply replaced with __GFP_xxxx.
This means that most memory allocation calls are missing the
__GFP_WAIT flag. The result is that Lustre experiences more ENOMEM
errors, many of which the higher levels of Lustre do not handle
robustly.
Notes GFP_NOFS = __GFP_WAIT | __GFP_IO. So the patch replaces
__GFP_IO with GFP_NOFS.
Patch does not add __GFP_WAIT to GFP_IOFS. GFP_IOFS was not used in
Lustre 2.4 so it has never been used with __GFP_WAIT.
Signed-off-by: Ann Koehler <amk@cray.com> Signed-off-by: Emoly Liu <emoly.liu@intel.com>
Reviewed-on: http://review.whamcloud.com/9223
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4357 Reviewed-by: Liang Zhen <liang.zhen@intel.com> Reviewed-by: James Simmons <uja.ornl@gmail.com> Reviewed-by: Andreas Dilger <andreas.dilger@intel.com> Signed-off-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Andreas Dilger [Sun, 27 Apr 2014 17:06:33 +0000 (13:06 -0400)]
staging/lustre/ptlrpc: don't try to recover no_recov connection
If a connection has been stopped with ptlrpc_pinger_del_import() and
marked obd_no_recov, don't reconnect in ptlrpc_disconnect_import() if
the import is already disconnected. Otherwise, without the pinger it
will just wait there indefinitely for the reconnection that will never
happen.
Put the obd_no_recov check inside ptlrpc_import_in_recovery() so that
any threads waiting on the connection to recover would also be broken
out of their sleep if obd_no_recov is set.
staging/lustre/clio: clear nowait flag agl lock re-enqueue
The LDLM_FL_BLOCK_NOWAIT flag should be cleared when re-enqueue
the agl lock as normal glimpse, otherwise, it won't get size back
if there is conflicting locks on other client.
Matt Ezell [Sun, 27 Apr 2014 17:06:30 +0000 (13:06 -0400)]
staging/lustre/lnet: Dropped messages are not accounted correctly
LNET messages that are dropped are not accounted for correctly in
/proc/sys/lnet/stats. What I assume to be a simple typo is causing
drop_length to be double-counted and drop_count to never be
incremented.
Signed-off-by: Matt Ezell <ezellma@ornl.gov>
Reviewed-on: http://review.whamcloud.com/9096
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4577 Reviewed-by: James Nunez <james.a.nunez@intel.com> Reviewed-by: James Simmons <uja.ornl@gmail.com> Reviewed-by: Isaac Huang <he.huang@intel.com> Reviewed-by: Liang Zhen <liang.zhen@intel.com> Signed-off-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
In ptlrpc_activate_import(), obd_import->imp_deactive should
be checked if it is deactivated, otherwise it will trigger an
LBUG in ptlrpc_invalidate_import():
staging/lustre/ptlrpc: Remove log message about export timer update
Function ptlrpc_update_export_timer generates lots of D_HA level log
messages whenever the export timer gets updated. Those log messages
are found little use for issue investigations, and it will take space
in the Lustre log buffer. We are removing it now.
Patrick Farrell [Sun, 27 Apr 2014 17:06:25 +0000 (13:06 -0400)]
staging/lustre/ptlrpc: Fix assertion failure of null_alloc_rs()
lustre_get_emerg_rs() set the size of the reply buffer to zero
by mistake, which will cause LBUG in null_alloc_rs() when memory
pressure is high. This patch fix this problem and adds a size
check to avoid the problem of insufficient buffer size.
Signed-off-by: Li Xi <lixi@ddn.com> Signed-off-by: Patrick Farrell <paf@cray.com>
Reviewed-on: http://review.whamcloud.com/8200
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3680 Reviewed-by: John L. Hammond <john.hammond@intel.com> Signed-off-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Larry Finger [Sat, 26 Apr 2014 16:55:17 +0000 (18:55 +0200)]
staging: r8723au: Set undeclared routines to static
The following sparse warnings are fixed:
drivers/staging/rtl8723au/core/rtw_cmd.c:1211:6: warning: symbol 'dynamic_chk_wk_hdl' was not declared. Should it be static?
drivers/staging/rtl8723au/core/rtw_cmd.c:1238:6: warning: symbol 'lps_ctrl_wk_hdl' was not declared. Should it be static?
drivers/staging/rtl8723au/core/rtw_cmd.c:1812:6: warning: symbol 'rtw_getrttbl_cmd_cmdrsp_callback' was not declared. Should it be static?
drivers/staging/rtl8723au/core/rtw_mlme.c:364:6: warning: symbol 'rtw_free_network' was not declared. Should it be static?
drivers/staging/rtl8723au/core/rtw_mlme.c:373:6: warning: symbol 'rtw_free_network_nolock' was not declared. Should it be static?
drivers/staging/rtl8723au/core/rtw_mlme.c:631:6: warning: symbol 'rtw_add_network' was not declared. Should it be static?
drivers/staging/rtl8723au/core/rtw_mlme.c:644:5: warning: symbol 'rtw_is_desired_network' was not declared. Should it be static?
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2246:5: warning: symbol 'DoReserved23a' was not declared. Should it be static?
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:5549:6: warning: symbol 'linked23a_rx_sig_stren_disp' was not declared. Should it be static?
drivers/staging/rtl8723au/core/rtw_pwrctrl.c:272:4: warning: symbol 'PS_RDY_CHECK' was not declared. Should it be static?
drivers/staging/rtl8723au/core/rtw_recv.c:1937:5: warning: symbol 'enqueue_reorder_recvframe23a' was not declared. Should it be static?
drivers/staging/rtl8723au/core/rtw_sta_mgt.c:24:6: warning: symbol '_rtw_init_stainfo' was not declared. Should it be static?
drivers/staging/rtl8723au/core/rtw_sta_mgt.c:112:6: warning: symbol 'rtw_mfree_all_stainfo' was not declared. Should it be static?
drivers/staging/rtl8723au/core/rtw_sta_mgt.c:127:6: warning: symbol 'rtw_mfree_sta_priv_lock' was not declared. Should it be static?
drivers/staging/rtl8723au/core/rtw_wlan_util.c:143:15: warning: symbol 'ratetbl_val_2wifirate' was not declared. Should it be static?
drivers/staging/rtl8723au/core/rtw_wlan_util.c:188:5: warning: symbol 'is_basicrate' was not declared. Should it be static?
drivers/staging/rtl8723au/core/rtw_wlan_util.c:206:14: warning: symbol 'ratetbl2rateset' was not declared. Should it be static?
Three of the above routines were not used and were deleted.
Larry Finger [Sat, 26 Apr 2014 16:55:16 +0000 (18:55 +0200)]
staging: r8723au: Fix endian errors in descriptor get and set macros
There are several macros used to get and set portions of the RX and TX descriptor
information that need to be converted to be endian correct. The following sparse
warnings are fixed:
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2477:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2477:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2479:9: warning: invalid assignment: &=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2479:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2479:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2479:9: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2479:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2479:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2649:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2649:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2651:9: warning: invalid assignment: &=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2651:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2651:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2651:9: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2651:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2651:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2863:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2863:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2865:9: warning: invalid assignment: &=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2865:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2865:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2865:9: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2865:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2865:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2996:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2996:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2998:9: warning: invalid assignment: &=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2998:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2998:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2998:9: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2998:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:2998:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3105:25: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3105:25: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3105:25: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3164:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3164:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3167:17: warning: invalid assignment: &=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3167:17: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3167:17: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3167:17: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3167:17: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3167:17: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3313:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3313:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3315:9: warning: invalid assignment: &=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3315:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3315:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3315:9: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3315:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3315:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3581:17: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3581:17: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3581:17: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3583:17: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3583:17: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3583:17: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3586:17: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3586:17: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3586:17: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3592:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3592:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3594:9: warning: invalid assignment: &=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3594:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3594:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3594:9: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3594:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3594:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3702:17: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3702:17: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3702:17: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3704:17: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3704:17: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3704:17: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3707:17: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3707:17: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3707:17: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3711:9: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3711:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3711:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3713:9: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3713:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3713:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3715:9: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3715:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3715:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3721:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3721:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3723:9: warning: invalid assignment: &=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3723:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3723:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3723:9: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3723:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3723:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3827:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3827:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3829:9: warning: invalid assignment: &=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3829:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3829:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3829:9: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3829:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3829:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3938:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3938:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3940:9: warning: invalid assignment: &=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3940:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3940:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3940:9: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3940:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3940:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4010:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4010:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4012:9: warning: invalid assignment: &=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4012:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4012:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4012:9: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4012:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4012:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4199:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4199:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4201:9: warning: invalid assignment: &=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4201:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4201:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4201:9: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4201:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4201:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4509:28: warning: too many warnings
drivers/staging/rtl8723au/core/rtw_xmit.c:940:9: warning: invalid assignment: &=
drivers/staging/rtl8723au/core/rtw_xmit.c:940:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_xmit.c:940:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_xmit.c:940:9: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_xmit.c:940:9: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_xmit.c:940:9: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_xmit.c:946:25: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_xmit.c:946:25: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_xmit.c:946:25: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_xmit.c:957:25: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_xmit.c:957:25: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_xmit.c:957:25: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_xmit.c:980:25: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_xmit.c:980:25: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_xmit.c:980:25: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_xmit.c:982:25: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_xmit.c:982:25: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_xmit.c:982:25: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_xmit.c:986:33: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_xmit.c:986:33: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_xmit.c:986:33: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_xmit.c:987:25: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_xmit.c:987:25: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_xmit.c:987:25: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_xmit.c:988:25: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_xmit.c:988:25: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_xmit.c:988:25: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_xmit.c:997:25: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_xmit.c:997:25: warning: cast to restricted __le16
drivers/staging/rtl8723au/core/rtw_xmit.c:1176:17: warning: invalid assignment: |=
drivers/staging/rtl8723au/core/rtw_xmit.c:1176:17: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_xmit.c:1176:17: right side has type restricted __le16
drivers/staging/rtl8723au/core/rtw_xmit.c:1260:25: warning: invalid assignment: &=
drivers/staging/rtl8723au/core/rtw_xmit.c:1260:25: left side has type unsigned short
drivers/staging/rtl8723au/core/rtw_xmit.c:1260:25: right side has type fouled restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:224:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:224:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:226:9: warning: invalid assignment: &=
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:226:9: left side has type unsigned short
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:226:9: right side has type restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:226:9: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:226:9: left side has type unsigned short
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:226:9: right side has type restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:316:9: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:316:9: left side has type unsigned short
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:316:9: right side has type restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:317:9: warning: invalid assignment: &=
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:317:9: left side has type unsigned short
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:317:9: right side has type restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:317:9: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:317:9: left side has type unsigned short
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:317:9: right side has type restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:320:9: warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:320:9: expected unsigned short [unsigned] [short] <noident>
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:320:9: got restricted __le16 [usertype] <noident>
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:354:17: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:354:17: left side has type unsigned short
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:354:17: right side has type restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:358:17: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:358:17: left side has type unsigned short
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:358:17: right side has type restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:366:17: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:366:17: left side has type unsigned short
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:366:17: right side has type restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:382:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:382:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:387:17: warning: invalid assignment: &=
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:387:17: left side has type unsigned short
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:387:17: right side has type restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:387:17: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:387:17: left side has type unsigned short
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:387:17: right side has type restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:390:17: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:390:17: left side has type unsigned short
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:390:17: right side has type restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:391:17: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:391:17: left side has type unsigned short
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:391:17: right side has type restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:395:17: warning: invalid assignment: &=
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:395:17: left side has type unsigned short
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:395:17: right side has type restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:395:17: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:395:17: left side has type unsigned short
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:395:17: right side has type restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:426:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:426:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:427:9: warning: invalid assignment: &=
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:427:9: left side has type unsigned short
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:427:9: right side has type restricted __le16
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:427:9: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:427:9: left side has type unsigned short
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c:427:9: right side has type restricted __le16
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:319:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:319:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:323:17: warning: invalid assignment: &=
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:323:17: left side has type unsigned short
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:323:17: right side has type restricted __le16
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:323:17: warning: invalid assignment: |=
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:323:17: left side has type unsigned short
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:323:17: right side has type restricted __le16
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:326:17: warning: invalid assignment: &=
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:326:17: left side has type unsigned short
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:326:17: right side has type restricted __le16
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:326:17: warning: invalid assignment: |=
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:326:17: left side has type unsigned short
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:326:17: right side has type restricted __le16
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:2368:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:2368:9: warning: cast to restricted __le16
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:2370:9: warning: invalid assignment: &=
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:2370:9: left side has type unsigned short
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:2370:9: right side has type restricted __le16
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:2370:9: warning: invalid assignment: |=
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:2370:9: left side has type unsigned short
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:2370:9: right side has type restricted __le16
The following new warnings were temporarily added:
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4509:28: warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4509:28: expected unsigned short [unsigned] [assigned] [usertype] capab_info
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4509:28: got restricted __le16 [usertype] capab_info
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:4612:17: warning: cast to restricted __le32
drivers/staging/rtl8723au/core/rtw_mlme_ext.c:5549:6: warning: symbol 'linked23a_rx_sig_stren_disp' was not declared. Should it be static?
Larry Finger [Sat, 26 Apr 2014 16:55:14 +0000 (18:55 +0200)]
staging: r8723au: Fix endian issues with TX and RX descriptors
All descriptors are __le32, not unsigned int. The following sparse warnings are fixed:
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2626:24: warning: invalid assignment: &=
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2626:24: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2626:24: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2632:24: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2632:24: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2632:24: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2873:22: warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2873:22: expected unsigned int [unsigned] txdw0
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2873:22: got restricted __le32 [usertype] <noident>
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2874:22: warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2874:22: expected unsigned int [unsigned] txdw1
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2874:22: got restricted __le32 [usertype] <noident>
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2875:22: warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2875:22: expected unsigned int [unsigned] txdw2
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2875:22: got restricted __le32 [usertype] <noident>
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2876:22: warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2876:22: expected unsigned int [unsigned] txdw3
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2876:22: got restricted __le32 [usertype] <noident>
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2877:22: warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2877:22: expected unsigned int [unsigned] txdw4
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2877:22: got restricted __le32 [usertype] <noident>
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2878:22: warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2878:22: expected unsigned int [unsigned] txdw5
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2878:22: got restricted __le32 [usertype] <noident>
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2879:22: warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2879:22: expected unsigned int [unsigned] txdw6
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2879:22: got restricted __le32 [usertype] <noident>
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2880:22: warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2880:22: expected unsigned int [unsigned] txdw7
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2880:22: got restricted __le32 [usertype] <noident>
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2903:24: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2903:24: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2903:24: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2906:24: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2906:24: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2906:24: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2910:24: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2910:24: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2910:24: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2914:24: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2914:24: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2914:24: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2919:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2919:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2919:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2922:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2922:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2922:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2924:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2924:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2924:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2928:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2928:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2928:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2932:24: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2932:24: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2932:24: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:145:24: warning: cast to restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:146:24: warning: cast to restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:147:24: warning: cast to restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:148:24: warning: cast to restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:149:24: warning: cast to restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:150:24: warning: cast to restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:77:32: warning: invalid assignment: &=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:77:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:77:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:82:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:82:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:82:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:92:40: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:92:40: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:92:40: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:97:40: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:97:40: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:97:40: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:100:40: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:100:40: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:100:40: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:183:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:183:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:183:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:186:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:186:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:186:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:188:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:188:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:188:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:193:40: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:193:40: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:193:40: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:195:40: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:195:40: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:195:40: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:200:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:200:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:200:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:204:40: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:204:40: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:204:40: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:214:40: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:214:40: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:214:40: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:215:40: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:215:40: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:215:40: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:218:40: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:218:40: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:218:40: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:224:40: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:224:40: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:224:40: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:226:40: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:226:40: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:226:40: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:229:48: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:229:48: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:229:48: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:231:40: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:231:40: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:231:40: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:235:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:235:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:235:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:238:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:238:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:238:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:240:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:240:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:240:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:245:40: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:245:40: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:245:40: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:248:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:248:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:248:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:251:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:251:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:251:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:254:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:254:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:254:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:255:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:255:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:255:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:257:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:257:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:257:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:264:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:264:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:264:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:266:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:266:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:266:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:271:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:271:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:271:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:274:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:274:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:274:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:277:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:277:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:277:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:288:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:288:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:288:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:290:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:290:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:290:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:294:24: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:294:24: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:294:24: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:295:24: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:295:24: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:295:24: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:296:24: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:296:24: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:296:24: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:299:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:299:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:299:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:306:32: warning: invalid assignment: |=
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:306:32: left side has type unsigned int
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:306:32: right side has type restricted __le32
drivers/staging/rtl8723au/hal/usb_ops_linux.c:473:20: warning: cast to restricted __le32
drivers/staging/rtl8723au/hal/usb_ops_linux.c:590:36: warning: cast to restricted __le32
The following new warnings are temporarily added:
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2873:24: warning: cast from restricted __le32
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2874:24: warning: cast from restricted __le32
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2875:24: warning: cast from restricted __le32
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2876:24: warning: cast from restricted __le32
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2877:24: warning: cast from restricted __le32
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2878:24: warning: cast from restricted __le32
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2879:24: warning: cast from restricted __le32
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:2880:24: warning: cast from restricted __le32
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:145:22: warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:145:22: expected restricted __le32 [usertype] rxdw0
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:145:22: got unsigned int [unsigned] [usertype] <noident>
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:146:22: warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:146:22: expected restricted __le32 [usertype] rxdw1
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:146:22: got unsigned int [unsigned] [usertype] <noident>
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:147:22: warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:147:22: expected restricted __le32 [usertype] rxdw2
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:147:22: got unsigned int [unsigned] [usertype] <noident>
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:148:22: warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:148:22: expected restricted __le32 [usertype] rxdw3
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:148:22: got unsigned int [unsigned] [usertype] <noident>
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:149:22: warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:149:22: expected restricted __le32 [usertype] rxdw4
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:149:22: got unsigned int [unsigned] [usertype] <noident>
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:150:22: warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:150:22: expected restricted __le32 [usertype] rxdw5
drivers/staging/rtl8723au/hal/rtl8723au_recv.c:150:22: got unsigned int [unsigned] [usertype] <noident>
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:211:51: warning: incorrect type in argument 2 (different base types)
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:211:51: expected unsigned int [usertype] *pdw
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:211:51: got restricted __le32 *<noident>
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:212:51: warning: incorrect type in argument 2 (different base types)
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:212:51: expected unsigned int [usertype] *pdw
drivers/staging/rtl8723au/hal/rtl8723au_xmit.c:212:51: got restricted __le32 *<noident>
Larry Finger [Sat, 26 Apr 2014 16:55:12 +0000 (18:55 +0200)]
staging: r8723au: Fix sparse errors in os_dep/osdep_service.c
Sparse reports
drivers/staging/rtl8723au/os_dep/osdep_service.c:24:20: error: Bad character constant
drivers/staging/rtl8723au/os_dep/osdep_service.c:25:0: error: Bad character constant
staging: rtl8723au: Use a workqueue for command handling
Rewrite the old thread based code to use a workqueue instead. This
removes a pile of complexity, locks and queues and eliminates problem
that cmd handling could have been killed from userspace.
staging: rtl8723au: Check kmalloc return value and fix size of memcpy()
Check kmalloc() return before dereferencing bssid in
rtw_check_bcn_info23a() and use the correct size to copy
rtw_basic_rate_ofdm in update_bmc_sta_support_rate23a()
Thomas Vegas [Sat, 26 Apr 2014 09:20:09 +0000 (11:20 +0200)]
staging: cxt1e1: Avoid using 0 instead of NULL
Fixed the following sparse warnings:
drivers/staging/cxt1e1/hwprobe.c:162:38:
warning: Using plain integer as NULL pointer
drivers/staging/cxt1e1/hwprobe.c:163:38:
warning: Using plain integer as NULL pointer
drivers/staging/cxt1e1/hwprobe.c:179:46:
warning: Using plain integer as NULL pointer
drivers/staging/cxt1e1/hwprobe.c:184:46:
warning: Using plain integer as NULL pointer
Signed-off-by: Thomas Vegas <thomas_75@safe-mail.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Merge tag 'iio-for-3.16a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next
Jonathan writes:
First round of IIO new driver, functionality and cleanups for the 3.16 cycle.
New device support
* AS3935 Lightning Sensor
* MCP3426/7/8 support added to the existing MCP3422 ADC driver
* AK8963 support in the AK8975 driver
* MPU6500 support in the MPU6050 driver (the functionality that is different
is mostly not supported yet in either part).
Staging Graduations
* AD799x ADC
New functionality
* ACPI enumeration for the ak8975 driver
Cleanup / tweaks
* Use snprintf as a matter of good practice in a few additional places.
* Document *_mean_raw attributes. These have been there a while, but were
undocumented.
* Add an in kernel interface to get the mean values.
* Bug in the length of the event info mask that by coincidence wasn't yet
actually causing any problems.
* itg3000 drop an unreachable return statement.
* spear_adc cleanups (heading for a staging graduation but a few more
issues showed up in the review of these patches).
* Exynos ADC dependencies changed so it is only built when Exynos is present
or COMPILE_TEST and OF are set.
* tsl2583 cleanups.
* Some cut and paste typos in the comments of various drivers still in staging.
* Couple of minor improvements to the ST sensor drivers.
iio: st_sensors: move regulator retrieveal to core
Currently the pressure sensor has code to retrieve and enable two
regulators for Vdd and Vdd IO, but actually these voltage inputs
are found on all of these ST sensors, so move the regulator
handling to the core and make sure all the ST sensors call these
functions on probe() and remove() to enable/disable power.
Here also mover over to obtaining the regulator from the *parent*
device of the IIO device, as the IIO device is created on-the-fly
in this very subsystem it very unlikely evert have any regulators
attached to it whatsoever. It is much more likely that the parent
is a platform device, possibly instantiated from a device tree,
which in turn have Vdd and Vdd IO supplied assigned to it.
Cc: Lee Jones <lee.jones@linaro.org> Cc: Denis CIOCCA <denis.ciocca@st.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
It is pretty helpful to know already from dmesg that a certain
device is successfully registered, instead of having to browse
sysfs to see if it's actually there.
Cc: Lee Jones <lee.jones@linaro.org> Cc: Denis CIOCCA <denis.ciocca@st.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Vitor Braga [Sun, 30 Mar 2014 03:44:59 +0000 (00:44 -0300)]
staging: xgifb coding style cleanup
This fixes "missing a blank line after declaration" warnings from
checkpatch.pl for driver xgifb. The driver has no remaining errors or
warnings from checkpatch.pl
Russell King [Fri, 18 Apr 2014 09:46:45 +0000 (10:46 +0100)]
imx-drm: fix hdmi hotplug detection initial state
The initial state at boot is assumed to be disconnected, and we hope
to receive an interrupt to update the status. Let's be more explicit
about the current state - reading the PHY status register tells us
the current level of the hotplug signal, which we can report back in
the _detect() method.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The decoder mux id is equal to the port id of the encoder's input port
that is connected to the given crtc, not to the endpoint id (which is
arbitrary and usually zero).