Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
772149b6
Commit
772149b6
authored
Sep 14, 2014
by
Greg Kroah-Hartman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
greybus: fix hd init sequence of setting up parent and driver pointers properly
parent
13c8d9cd
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
16 additions
and
15 deletions
+16
-15
drivers/staging/greybus/ap.c
drivers/staging/greybus/ap.c
+12
-11
drivers/staging/greybus/core.c
drivers/staging/greybus/core.c
+2
-0
drivers/staging/greybus/gbuf.c
drivers/staging/greybus/gbuf.c
+1
-1
drivers/staging/greybus/greybus.h
drivers/staging/greybus/greybus.h
+1
-3
No files found.
drivers/staging/greybus/ap.c
View file @
772149b6
...
...
@@ -68,7 +68,7 @@ static void svc_handshake(struct svc_function_handshake *handshake,
/* A new SVC communication channel, let's verify it was for us */
if
(
handshake
->
handshake_type
!=
SVC_HANDSHAKE_SVC_HELLO
)
{
/* we don't know what to do with this, log it and return */
dev_dbg
(
&
hd
->
dev
,
"received invalid handshake type %d
\n
"
,
dev_dbg
(
hd
->
parent
,
"received invalid handshake type %d
\n
"
,
handshake
->
handshake_type
);
return
;
}
...
...
@@ -86,7 +86,7 @@ static void svc_management(struct svc_function_unipro_management *management,
struct
greybus_host_device
*
hd
)
{
/* What? An AP should not get this message */
dev_err
(
&
hd
->
dev
,
"Got an svc management message???
\n
"
);
dev_err
(
hd
->
parent
,
"Got an svc management message???
\n
"
);
}
static
void
svc_hotplug
(
struct
svc_function_hotplug
*
hotplug
,
...
...
@@ -96,17 +96,18 @@ static void svc_hotplug(struct svc_function_hotplug *hotplug,
switch
(
hotplug
->
hotplug_event
)
{
case
SVC_HOTPLUG_EVENT
:
dev_dbg
(
&
hd
->
dev
,
"module id %d added
\n
"
,
module_id
);
dev_dbg
(
hd
->
parent
,
"module id %d added
\n
"
,
module_id
);
// FIXME - add the module to the system
break
;
case
SVC_HOTUNPLUG_EVENT
:
dev_dbg
(
&
hd
->
dev
,
"module id %d removed
\n
"
,
module_id
);
dev_dbg
(
hd
->
parent
,
"module id %d removed
\n
"
,
module_id
);
// FIXME - remove the module from the system
break
;
default:
dev_err
(
&
hd
->
dev
,
"received invalid hotplug message type %d
\n
"
,
dev_err
(
hd
->
parent
,
"received invalid hotplug message type %d
\n
"
,
hotplug
->
hotplug_event
);
break
;
}
...
...
@@ -116,7 +117,7 @@ static void svc_ddb(struct svc_function_ddb *ddb,
struct
greybus_host_device
*
hd
)
{
/* What? An AP should not get this message */
dev_err
(
&
hd
->
dev
,
"Got an svc DDB message???
\n
"
);
dev_err
(
hd
->
parent
,
"Got an svc DDB message???
\n
"
);
}
static
void
svc_power
(
struct
svc_function_power
*
power
,
...
...
@@ -125,12 +126,12 @@ static void svc_power(struct svc_function_power *power,
u8
module_id
=
power
->
module_id
;
if
(
power
->
power_type
!=
SVC_POWER_BATTERY_STATUS
)
{
dev_err
(
&
hd
->
dev
,
"received invalid power type %d
\n
"
,
dev_err
(
hd
->
parent
,
"received invalid power type %d
\n
"
,
power
->
power_type
);
return
;
}
dev_dbg
(
&
hd
->
dev
,
"power status for module id %d is %d
\n
"
,
dev_dbg
(
hd
->
parent
,
"power status for module id %d is %d
\n
"
,
module_id
,
power
->
status
.
status
);
// FIXME - do something with the power information, like update our
...
...
@@ -141,14 +142,14 @@ static void svc_epm(struct svc_function_epm *epm,
struct
greybus_host_device
*
hd
)
{
/* What? An AP should not get this message */
dev_err
(
&
hd
->
dev
,
"Got an EPM message???
\n
"
);
dev_err
(
hd
->
parent
,
"Got an EPM message???
\n
"
);
}
static
void
svc_suspend
(
struct
svc_function_suspend
*
suspend
,
struct
greybus_host_device
*
hd
)
{
/* What? An AP should not get this message */
dev_err
(
&
hd
->
dev
,
"Got an suspend message???
\n
"
);
dev_err
(
hd
->
parent
,
"Got an suspend message???
\n
"
);
}
static
struct
svc_msg
*
convert_ap_message
(
struct
ap_msg
*
ap_msg
)
...
...
@@ -209,7 +210,7 @@ static void ap_process_event(struct work_struct *work)
svc_suspend
(
&
svc_msg
->
suspend
,
hd
);
break
;
default:
dev_err
(
&
hd
->
dev
,
"received invalid SVC message type %d
\n
"
,
dev_err
(
hd
->
parent
,
"received invalid SVC message type %d
\n
"
,
svc_msg
->
header
.
type
);
}
...
...
drivers/staging/greybus/core.c
View file @
772149b6
...
...
@@ -499,6 +499,8 @@ struct greybus_host_device *greybus_create_hd(struct greybus_host_driver *driver
return
NULL
;
kref_init
(
&
hd
->
kref
);
hd
->
parent
=
parent
;
hd
->
driver
=
driver
;
return
hd
;
}
...
...
drivers/staging/greybus/gbuf.c
View file @
772149b6
...
...
@@ -197,7 +197,7 @@ void greybus_cport_in_data(struct greybus_host_device *hd, int cport, u8 *data,
ch
=
&
cport_handler
[
cport
];
if
(
!
ch
->
handler
)
{
/* Ugh, drop the data on the floor, after logging it... */
dev_err
(
&
hd
->
dev
,
dev_err
(
hd
->
parent
,
"Received data for cport %d, but no handler!
\n
"
,
cport
);
return
;
...
...
drivers/staging/greybus/greybus.h
View file @
772149b6
...
...
@@ -105,7 +105,6 @@ struct svc_msg;
struct
greybus_host_driver
{
size_t
hd_priv_size
;
int
(
*
start
)(
struct
greybus_host_device
*
hd
);
int
(
*
alloc_gbuf
)(
struct
gbuf
*
gbuf
,
unsigned
int
size
,
gfp_t
gfp_mask
);
void
(
*
free_gbuf
)(
struct
gbuf
*
gbuf
);
int
(
*
send_svc_msg
)(
struct
svc_msg
*
svc_msg
,
struct
greybus_host_device
*
hd
);
...
...
@@ -114,10 +113,9 @@ struct greybus_host_driver {
};
struct
greybus_host_device
{
struct
device
dev
;
struct
kref
kref
;
struct
device
*
parent
;
const
struct
greybus_host_driver
*
driver
;
unsigned
long
hd_priv_size
;
/* Private data for the host driver */
unsigned
long
hd_priv
[
0
]
__attribute__
((
aligned
(
sizeof
(
s64
))));
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment