PETSc error while working with mixed form

I suspect my issue is related to dolfin.split(u) vs u.split()

After searching through threads on this forum, I am now firm that for defining the variational form, I need
u, p = dolfin.split(up) # (right?)

As for interpolation, I am not sure the right way since dolfin.split(u) returns a ListTensor object which does not have an interpolation method. I came across this though:

Following that, here is how I should do it in the loop (the rest remains unchanged):

V_el = dolfin.VectorElement("CG", mesh.ufl_cell(), 2)
Q_el = dolfin.FiniteElement("CG", mesh.ufl_cell(), 1)
W = dolfin.FunctionSpace(mesh, V_el*Q_el)
up = dolfin.Function(W) # current step solution
upn = dolfin.Function(W) # previous step solution 
u, p = dolfin.split(up) # for defining the variational form
un, pn = dolfin.split(upn) # for defining the variational form

up.sub(0).interpolate(u0) # set initial starting point for newton solver

However, this now leads me to the following error:

Any help will be highly appreciated